View Single Post
Old 14-08-2005, 08:26 PM   #1
minhcuong
Đệ tử 2 túi
 
minhcuong's Avatar
 
Tham gia ngày: Jul 2005
Bài gửi: 26
:
Cool #1: Create dsPIC30F Project

Chào các bạn,

Thread dsPIC mới được nhằm phục vụ anh em làm việc với dsPIC có nơi tập trung bàn luận, hỏi han về nó.

Trong bài đầu tiên này tôi sẽ giới thiệu một số bước cơ bản làm việc với dsPIC30F. Tôi sẽ lấy ví dụ với chip dsPIC30F4011, đây là chip sử dụng chuyên để điều khiển motor, 40pin, có 6 chân PWN và 1 một bộ giải mã Quadrature Encoder. Nó là dạng DIP, rất thích hợp với các bạn sinh viên thí nghiệm trên bread board.

Ngôn ngữ lập trình là MPLAB C30. Các bạn có thể down bạn miễn phí 60 ngày tại www.microchip.com.

Tài liệu tham khảo chủ yếu: "dsPIC30F Family Reference Manual",...

Bước 1: tạo một project trong C30, bước này khá đơn giản, các bạn chỉ việc khởi động MPLAB IDE rồi vào menu Project > Project Wizard, chọn chip dsPIC30F mình đang làm việc, chọn thư mục cho project. Có một số lưu ý sau đây: sau khi tạo xong project, bạn phải thêm Linker Scripts, Library Files và Header Files phù hợp con chip của bạn (vào menu View-Project để xem danh sách các files trong project của bạn). Ví dụ trường hợp của tôi:

- Linker Scripts: support\gld\p30f4011.gld
- Library Files: lib\libp30F4011-coff.a
- Header Files: support\h\p30f4011.h


Bước 2: tạo file c sau đó add vào nhánh Source Files.

Ví dụ:

Code:
#define __dsPIC30F4011__   //Rất quan trọng
#include<p30f4011.h>         //Chứa nhiều định nghĩa thanh nghi, các bit trong thanh nghi

int main (void)
{
   Initialize Your Code Here (ADC, PWM, TIMER, UART, TIMER)....
   while(1)
   {
      Dome Something Here...
   }
   return 0;
}
Bước 3:
Chọn Make All để compile, file kết xuất ra có đuôi là *.cof. File *.cof sẽ được load tự động. Nếu bạn dùng MPLAB ICD2, cấu hình đúng detect được chip thành công, bạn có thể nạp luôn ngay sau lệnh Make All bằng lệnh Programmer > Program.

Các lỗi thường gặp ở phần này
- Liên kết thiếu file Linker Scripts và file library.


Lưu ý: thư viện Peripheral của Microchip viết khá đơn giản, hầu như không đem lại ích thiết thực gì mà chỉ làm chương trình khó debug. Tôi khuyên các bạn chỉ cần đọc kỹ các thanh ghi và sử dụng file header (p30fXXXX.h) là đủ.

-------------------------------------------
Các phần tiếp theo
Phần 2: Oscillator, UART
Phần 3: PWM
Phần 4: ADC
.....
minhcuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn