PIC Vietnam

Go Back   PIC Vietnam > Các Đề Tài > PIC và Robot trên nền Ubuntu

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

PIC và Robot trên nền Ubuntu Đây là một chủ trương mới mà chúng ta cần chú ý.

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 31-05-2008, 05:32 PM   #1
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Sử dụng CC5X trên nền Ubuntu

Hoàn toàn tương tự với CCS C, Wine là công cụ tương đối tốt và gọn nhẹ. CC5XFree là phiên bản mà các bạn có thể dùng hoàn toàn miễn phí.

F chưa có thời gian test kỹ, nhưng nhìn chung thì nó hoàn toàn đơn giản, F sẽ viết hướng dẫn sử dụng CC5X sau. Trước đây F không có ý định phổ biến thật nhiều các công cụ, bởi muốn cộng đồng tập trung vào các công cụ thực sự mạnh như CCS C, MPLAB C, MikroE, ...

Nhưng nhu cầu phát triển ngày nay đã rộng hơn, do vậy việc giới thiệu cho cộng đồng biết tất cả các công cụ và cổ vũ cho việc phát triển các công cụ miễn phí, mã nguồn mở lại trở nên cần thiết.


Cấu hình CC5X cũng đơn giản chỉ là cài Wine thôi.

Hướng dẫn sử dụng CC5X có thể download tại đây: http://www.bknd.com/cc5x/download.shtml

Sườn chương trình cơ bản:
PHP Code:
#pragma chip 16F887 // Khai báo chip
#include "int16CXX.H"  // int_save_registers and int_restore_registers is defined in this file (file này cho phép tác vụ lưu lại các thanh ghi)

// Cấu hình chip
#pragma  config  &= ~0b00.0000.1111.0000
#pragma  config  |=  0b00.0000.1100.0100 


// Chương trình phục vụ ngắt
#pragma origin 4
interrupt Interrupt_Subroutine(void)
{
        
//Chương trình interrupt được viết vào đây
}

// Chương trình chính
void main (void)
{
        
// Chương trình chính được viết ở đây
    
while(1);        // khoá chương trình

Các file headers có thể download tại trang download của CC5X phía trên.

Trong thời gian tới F sẽ trình bày kỹ hơn cho các bạn về CC5X. Bài viết này chỉ mang tính chất giới thiệu. Những phần nào các bạn chưa hiểu, các bạn có thể tìm hiểu thêm trên Google. Mọi thứ đều có sẵn cho các bạn sử dụng.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-06-2008, 08:58 AM   #2
kyloti_dung
Đệ tử 1 túi
 
Tham gia ngày: Apr 2008
Bài gửi: 16
:
Em rất ủng hộ Bác F, linux với mã nguồn mở ngày càng được khuyến khích sử dụng . Sẵn có Bác F đây khai lối mòn, em sẽ cùng Bác nghiên cứu nó, mở rộng nó.
Nào các bạn chúng ta hãy cùng Bác F đi khám phá những chân trời mới nào !
kyloti_dung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-06-2008, 04:39 PM   #3
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
CC5X Tutorial 1

Để thuận tiện cho cả người dùng Windows và Linux, F sử dụng MPLAB để làm thử một bài tập nhỏ với input, output và delay như dưới đây:

F sử dụng chip 16F886. F vẫn thích dùng con vừa vừa chân thế này cho các ứng dụng. Trước đây F dùng 16F876A cho luận văn tốt nghiệp, và giờ đây thì dùng 16F886, nó cũng không thiếu tính năng hơn 16F887 nhưng đảm bảo một điều rẻ hơn, và đủ mọi thứ cần thiết để học cho PIC.

Biên dịch CC5X trên Ubuntu và Piklab cũng làm tương tự. Trong thí dụ này F dùng MPLAB, bởi vì F vẫn còn gặp vấn đề kết nối ICD2 với Piklab, F phải nghiên cứu thêm.

Bo mạch này F sử dụng mạch PICDem 2 Plus để thực hành. Trên bo này có RB0 - RB4 là các LED. 3 nút nhấn RESET, RA4 và RB0 (dùng cho ngắt ngoài). Do vậy bài tập cơ bản đầu tiên, F sử dụng nút bấm RA4 và output là RB1.

Ngoài ra, các viết chương trình của F cố gắng thể hiện các directive của CC5X để các bạn tiện theo dõi. Có những cái không dùng để làm gì, F để nó ở đó để các bạn linh hoạt sử dụng trong chương trình của mình và hiểu về cấu trúc chương trình.

Code:
// Cau hinh chip
#pragma chip PIC16F886
#pragma config WDTE=off, FOSC=XT

// Cac file di kem
#include "int16CXX.H"

// Dat bien toan cuc
char a;
bit b1, b2;

//Dat ten cho cac chan
#pragma bit input  @ PORTA.4
#pragma bit output @ PORTB.1

// Template cho ngat xem trong tap tin INT16Cxx.H

// Chuong trinh delay
void delay_ms(uns16 millisec)
{
   char next = 0;
   
   OPTION = 2;                  // prescaler divide TMR0 rate by 8
   TMR0 = 2;                  // deduct 2*8 fixed instruction cycles delay
   do
   {
      next += 125;
      //clrwdt();               // needed only if watchdog is enabled
      while (TMR0 != next);      // 125 * 8 = 1000 (= 1 ms)
   } while ( -- millisec != 0);
}

void main( void)
{
   TRISB = 0;                  // PORTB la output
   output = 0;                  // tat output
   TRISA = 0b.0001.0000;         // RA4 la input
   
   while (1)
   {
      while (input == 0)
      {
         output = 1;
         delay_ms(1000);
      }
      
      output = 0;               // tat output
   }
      
   // Khong can khoa chuong trinh bang While
   // chuong trinh se duoc tu dong khoa bang lenh SLEEP khi bien dich
}
Các bạn dùng MPLAB thì download toàn bộ WorkSpace dưới đây cho tiện.

Chúc vui
File Kèm Theo
File Type: zip CC5X_tutorial1.zip (17.3 KB, 31 lần tải)
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-06-2008, 04:49 PM   #4
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Hôm nay F thử cài CC5X trên Win, các bạn chú ý là trên Win thằng CC5X này nó chạy hơi lâu, kiên nhẫn chờ đợi, bởi vì nó chỉ là chép một loạt file headers vào thôi và nó làm rất chuối.

Khi sử dụng với MPLAB, các bạn nhớ trỏ đường dẫn cho CC5X trong ToolSuites. Ngoài ra trỏ MPASM và MPLINK luôn, vì nó cần kết hợp 3 công cụ này với nhau.

Thằng này chuối chuối nhưng giá lại cao. Không hiểu tại sao nó vẫn bán. Nó cho rằng code của nó sinh ra là tối ưu hơn một số code, nhưng có vẻ như nó phát triển tương đối đơn độc.

Dù sao thì điều này cũng thật hay khi mà mọi người đều có thể xài free để học, và sử dụng ở mức độ các dự án điều khiển, hoàn toàn khả thi.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-07-2008, 07:37 PM   #5
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Anh đã thử cài MPLAB IDE (v8 và v8.10) trên Kubuntu, dùng cả Wine 1.0 và Wine 1.1.1. Không rõ vì lý do gì, cả hai trường hợp đều khiến MPLAB IDE không thể khởi tạo được một số legacy language suite (như CC5X, CC8E, HTPic, ...). Khi khởi động MPLAB IDE thì nhận được một số thông báo lỗi về việc khởi tạo các legacy toolsuite, và trong danh sách các registered toolsuite của MPLAB IDE (ở bước chọn toolsuite khi tạo project mới) thì chỉ có các toolsuite của Microchip và CCS C. Do đó không thể chọn CC5X để thử với MPLAB được.

Kubuntu và Ubuntu về cái nền là hoàn toàn giống nhau, chỉ khác phần desktop environment. Bản Kubuntu đã thử nghiệm là 8.04.

Các lỗi trên cũng được gởi đến AppDB của Wine cách đây vài ngày, thử nghiệm trên Ubuntu hay Mandriva, link ở đây:
http://appdb.winehq.org/objectManage...estingId=26788

Không lẽ phải cài Ubuntu để thử xem thằng MPLAB IDE nó có đăng ký được CC5X với Wine.

À quên một chuyện, Wine được cấu hình như Windows XP.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263

thay đổi nội dung bởi: namqn, 16-07-2008 lúc 07:50 PM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Tags
cc5x, pic16, piklab, ubuntu


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 10:18 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam