|
Tài trợ cho PIC Vietnam |
PIC32 - Bộ điều khiển tín hiệu số 32-bit Microchip công bố sản phẩm vi xử lý 32-bit ngày 06/11/2007 |
|
Ðiều Chỉnh | Xếp Bài |
19-01-2008, 03:14 PM | #5 |
PIC Bang chủ
|
Học lập trình cơ bản
Trong giới hạn bài viết này, chúng ta tìm hiểu trực tiếp việc lập trình PIC32 dùng trình dịch C32 của Microchip và môi trường soạn thảo MPLAB v8.0 trở lên làm cơ bản. Những nội dung khác chúng ta sẽ khảo sát sau.
1. Tìm hiểu các hàm trong plib.h Các "hàm" trong C32 được định nghĩa dưới dạng #define, bởi đôi lúc việc thực hiện những công việc này nó quá đơn giản, và người ta đã viết thành các định nghĩa (#define) như kiểu "macro" của C vậy. Việc đơn giản là chúng ta sẽ gọi trực tiếp các định nghĩa này như gọi một "hàm" vậy. Chúng ta sẽ tìm hiểu kỹ tại sao người ta lại viết như vậy, và quy trình của nó như thế nào một cách chi tiết hơn ở các phần bên dưới. 1.1. Chức năng I/O (ngày 23/01/2008) Chức năng I/O các bạn xem bài tập PIC32Test.zip mà F gửi, có lẽ từ đó các bạn sẽ có thể nắm được ngay nó làm gì, như thế nào. F viết chú thích vào trong đó. (các bạn nhớ mở cả workspace, file .mcp). F đã đặt cái SFR view sẵn trên đó, các bạn kéo nó xuống tới chỗ PORTD, TRISD, LATD, ODCD để xem sự thay đổi của các thanh ghi này, vì chúng ta đang tương tác PORTD (các LEDs trên PIC32 Starter Kit cắm ở RD0, RD1, RD2) Ngoài ra, F còn chép y nguyên lại một đoạn chương trình mẫu trong PIC32 Starter Kit User Guide, đồng thời sửa các lệnh của nó để so sánh cách viết, ngoài ra F cũng ghi chú những F cần thiết trong đó. Hy vọng có thời gian sẽ mở riêng ra một luồng về các chức năng của PIC32 riêng, còn giờ thì chỉ làm những việc lặt vặt được thôi. 1.2. Chức năng ADC Code:
#define OpenADC10(config1, config2, config3, configport, configscan) (mPORTBSetPinsAnalogIn(configport), AD1CSSL = ~(configscan), AD1CON3 = (config3), AD1CON2 = (config2), AD1CON1 = (config1) ) Code:
#define ConfigIntADC10(config) ( mAD1ClearIntFlag(), mAD1SetIntPriority(((config) & 7)), mAD1SetIntSubPriority((((config) >> 4) & 3)), mAD1IntEnable(((config) >> 15)) ) Code:
#define EnableADC10() (AD1CON1SET = _AD1CON1_ON_MASK) Code:
#define AcquireADC10() (AD1CON1SET = _AD1CON1_SAMP_MASK) Code:
#define BusyADC10() (AD1CON1bits.DONE)
Code:
#define ConvertADC10() (AD1CON1CLR = _AD1CON1_SAMP_MASK) Code:
#define ReadActiveBufferADC10() ( AD1CON2bits.BUFS ) Code:
#define ReadADC10(bufIndex) (*(&ADC1BUF0+((bufIndex) * 4))) Code:
#define SetChanADC10(config) (AD1CHS = (config)) Code:
#define CloseADC10() ( mAD1IntEnable(0), AD1CON1CLR = _AD1CON1_ON_MASK ) Chúc vui Tài liệu tham khảo: [1] File plib.h trong thư mục C:\Program Files\MPLAB C32\libscr\include
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? thay đổi nội dung bởi: falleaf, 23-01-2008 lúc 04:03 PM. |
|
|