Trích:
Nguyên văn bởi roi
Mình đang làm đồ án, sử dụng con pic 18f4431 để điều rộng xung, mình viết bằng mikroC. Rắc rối mình gặp phải là khi thử cho xuất LED với đoạn lệnh:
void main()
{
TRISB = 0;
PORTB = 0;
while(1)
{
PORTB = 1 - PORTB;
delay_ms(1);
}
}
thì LED nhấp nháy với thời gian khoảng 1 giây. Mình nghĩ có lẽ vì mình chưa chọn đúng chế độ sử dụng thạch anh ngoài ( 20Mhz ) nên có một nguồn dao động nội nào đó làm việc chứ không phải thạch anh mình đang dùng. àh, giờ mới nhớ ra con chip mình tính toán cực kì chậm. Là lỗi này phải không? bạn nào đã từng làm qua hướng dẫn giúp mình cách sửa lỗi với. Chương trình mình đã xong rồi, chỉ còn bị chỗ này mà tìm mãi trong datasheet vẫn không biết làm sao cho đúng. 4 ngày nữa phải nộp rồi. hic. Help me!!! Help me!!! SOS.
Thanks for all your help!
|
Lâu rồi tôi không dùng mikroC nên cũng không nhớ rõ. Bạn có thể chụp màn hình thiết lập cấu hình của bạn lên không (chụp tất cả các phần cấu hình)? PIC18F4431 có 7 từ cấu hình, tôi đã biết nhiều người gặp các hành vi khó hiểu của PIC vì thiết lập không đầy đủ các từ cấu hình. Ví dụ dưới đây là cấu hình điển hình của tôi cho PIC18F4431 (để bạn có khái niệm về những field cần thiết lập):
Code:
#pragma config OSC = HS
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRTEN = ON
#pragma config BOREN = ON
#pragma config BORV = 27
#pragma config WDTEN = OFF
#pragma config WINEN = OFF
#pragma config WDPS = 32768
#pragma config T1OSCMX = OFF
#pragma config HPOL = HIGH
#pragma config LPOL = HIGH
#pragma config PWMPIN = ON
#pragma config MCLRE = ON
#pragma config EXCLKMX = RD0
#pragma config PWM4MX = RD5
#pragma config SSPMX = RD1
#pragma config FLTAMX = RD4
#pragma config STVREN = ON
#pragma config LVP = OFF
#pragma config DEBUG = OFF
#pragma config CP0 = OFF
#pragma config CP1 = OFF
#pragma config CP2 = OFF
#pragma config CP3 = OFF
#pragma config CPB = OFF
#pragma config CPD = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRT2 = OFF
#pragma config WRT3 = OFF
#pragma config WRTB = OFF
#pragma config WRTC = OFF
#pragma config WRTD = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
#pragma config EBTR2 = OFF
#pragma config EBTR3 = OFF
#pragma config EBTRB = OFF
Để xuất thông tin ra các port I/O của PIC18 thì bạn nên dùng thanh ghi LATx thay vì PORTx. Quy tắc đơn giản: xuất ra LATx, đọc từ PORTx.
Thân,