PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 23-06-2012, 04:56 AM   #1
mrdongus
Nhập môn đệ tử
 
Tham gia ngày: Mar 2012
Bài gửi: 4
:
[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
mrdongus vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-06-2012, 11:57 AM   #2
rocket42
Đệ tử 4 túi
 
rocket42's Avatar
 
Tham gia ngày: Jun 2010
Nơi Cư Ngụ: Tọa Thiên
Bài gửi: 72
:
Send a message via Yahoo to rocket42
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.
__________________
Web: http://elinux.vn
Email: elinuxvn@gmail.com
rocket42 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-06-2012, 02:33 AM   #3
mrdongus
Nhập môn đệ tử
 
Tham gia ngày: Mar 2012
Bài gửi: 4
:
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
mrdongus vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Tags
c18 compiler


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à 01:38 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