24-03-2010, 08:41 AM | #1 |
Đệ tử 5 túi
Tham gia ngày: Jan 2008
Bài gửi: 97
: |
Lỗi trong MPLAB C18
mục đích của đoạn code này là làm nhấp nháy đèn led .
#include <p18cxxx.h> #pragma config WDT = OFF #pragma config FOSC = HS #pragma config CPUDIV = OSC1_PLL2 #pragma config PWRT = ON #pragma config BOR = ON #pragma config BORV = 3 #pragma config MCLRE = ON #pragma config LVP = OFF void main (void) { TRISA=0; OSCCONbits.SCS0=0; OSCCONbits.SCS1=0;//chọn bộ dao động chính while(1){ PORTAbits.AN0=1; delay();//hàm delay tôi không nêu ra ở đây,thời gian delay là 1s; PORTAbits.AN0=0; delay();//hàm delay tôi không nêu ra ở đây,thời gian delay là 1s; } với cách viết như trên thì nó chạy rất tốt. nhưng khi thay đổi: OSCCONbits.SCS0=1; OSCCONbits.SCS1=0;//chọn bộ dao động timer1 làm xung hệ thống. thì nó cũng có thời gian delay như trên(mặc dù tôi không có đặt bất cứ thạch anh vào timer1),tôi tưởng nó bị nhiễu từ bộ dao động chính, nên cho 2 pin của timer1 xuống đất,nhưng kết quả vẫn vậy,tôi không hiểu. có ai giải thích dùm hộ. Tôi còn có một thắc mắc nữa là: cũng là đoạn code trên nhưng: OSCCONbits.SCS0=0; OSCCONbits.SCS1=0;//chọn bộ dao động chính while(1){ PORTAbits.AN0=~LATAbits.LATA0;//toggle pin A0 delay(); } đoạn code này cũng chạy tốt.nhưng while(1){ PORTAbits.AN0=~PORTAbits.AN0;//toggle pin A0 delay(); } lại không chạy, mặc dù pin A0 nối ra đèn led thông qua một điện trở và không có tụ . thay đổi nội dung bởi: lybao_huy, 24-03-2010 lúc 09:26 AM. |
|
|