PDA

View Full Version : Sử dụng CC5X trên nền Ubuntu


falleaf
31-05-2008, 05:32 PM
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.

http://i32.photobucket.com/albums/d28/picvietnam/Ubuntu/Screenshot-ConfigureToolchains-Pikl.png

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:

#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

kyloti_dung
01-06-2008, 08:58 AM
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 !

falleaf
01-06-2008, 04:39 PM
Để 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.


// 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

falleaf
01-06-2008, 04:49 PM
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

namqn
16-07-2008, 07:37 PM
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/objectManager.php?sClass=version&iId=11828&iTestingId=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,