PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   [Hỏi] Vấn đề C18 Compiler (http://www.picvietnam.com/forum/showthread.php?t=28073)

mrdongus 23-06-2012 04:56 AM

[Hỏi] Vấn đề C18 Compiler
 
Hi. Mình mới tìm hiểu C18 compiler và PIC18F2550.
Có một số câu hỏi cơ bản mong được các bạn các anh đi trước giúp hiểu thêm.
Mình đọc 1 tài liệu C18 compiler tiếng Việt thì thấy khai báo I/O chỉ đề cập đến
TRISB = 0x00; // là khai B là port out
TRISBbits cũng cùng địa chỉ với TRISB

Khi đọc 1 đoạn code mẫu chương trình khác có đoạn ghi

TRISCbits.TRISC3 = 0 // port C pin 3 là chân out

mình khai báo tương đương lệnh trên như thế này có đúng không:

TRISC = 0xf7; // pin 3 của port C là pin out


-------------------------------------

#define SPI_CE LATCbits.LATC1 // CE output pin, PORTC pin 1
#define SPI_IRQ PORTBbits.RB0 // IRQ input pin, PORTB pin 0

Có phải dùng LAT để định nghĩa cho chân là chân output và PORT là chân input?

Nhờ các bác chỉ giúp. em mới tự mò mẩm tự học. cảm ơn :)

rocket42 23-06-2012 11:57 AM

Em định nghĩa TRISC=0xf7 là đúng rồi.
Còn 2 dòng lênh:
#define SPI_CE LATCbits.LATC1 // CE output pin, PORTC pin 1
#define SPI_IRQ PORTBbits.RB0 // IRQ input pin, PORTB pin 0
- 2 dòng lệnh này không có ý nghĩa rằng chân RC1 là out và RB0 là in; để định nghĩa chân là in/out sử dụng như lệnh vừa trên đó.
- lệnh đầu tiên có ý nghĩa là khi đã thiêt lập RC1 là OUT. Giả sử ta dùng SPI_CE=1 thì RC1 xuất ra 1
- lênh 2 có ý nghĩa là khi đã thiêt lập RB0 là IN. ta có thể đọc giá trị chân RB0 sử dụng SPI_IRQ convention.

mrdongus 26-06-2012 02:33 AM

Chào a Hùng. Có đọc qua tài liệu C18 tiếng Việt của anh ^^

Anh cho em hỏi về timer 1 trong PIC18.
Em đang cần đếm counter đếm nhanh khoảng (1/3).10^-7s counter đếm lên 1 (cần Clock timer khoảng 30MHz). mà xung clock system tối đa là 48MHz, sau đó chia 4 còn 12MHz dùng cho timer thôi.
Đọc trong Datasheet thì thấy, ngoài việc dùng dao động bên trong còn có thể dùng xung clock từ bên ngoài ở chân RC0/T13CLK. Không biết em có thể cấp xung 30MHz vào chân này được không. Mong anh chỉ giúp :)


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam