PIC16F84A mã với HI-TECH C Compiler

Z

zia.newversion

Guest
Tại sao không nên làm việc này mã? [Cú pháp = c] # include void main (void) {TRISA = 0x00; TRISB = 0x00; Porta = 0x00; PORTB = 0x00; OPTION = 0x07; RBPU = 0; T0IE = 1; INTEDG = 1; Giẻ = 0, trong khi (1) CLRWDT ();} static void ngắt ISR () {if (T0IF & T0IE) {T0IF = 0; Porta = ~ Porta;}} [/ cú pháp]
 
0x3FF4 OSC = LP WDT = ON PWRTE = ON CDP = OFF Nhưng tôi không thể tưởng tượng như thế nào đó là quan trọng.
 
Tại sao không nên làm việc này mã? [Cú pháp = c] # include void main (void) {TRISA = 0x00; TRISB = 0x00; Porta = 0x00; PORTB = 0x00; OPTION = 0x07; RBPU = 0; T0IE = 1; INTEDG = 1; Giẻ = 0, trong khi (1) CLRWDT ();} tĩnh ISR void gián đoạn () {if (T0IF & T0IE) {T0IF = 0; Porta = ~ Porta;}} [/ cú pháp]
Trước hết, Giẻ của bạn phải được 1 trong chính. Khi Giẻ = 0, toàn cầu ngắt được tắt. Thứ hai, kiểm tra của bạn nếu có điều kiện (if (T0IF & T0IE)). Thông thường, chỉ có lá cờ của mình mà cần phải được kiểm tra. sau đó bạn thiết lập cho phép dòng trong mã nguồn và thiết lập lại cờ là tốt. Thứ ba, tôi nghĩ rằng (không chắc chắn về điều này), các chương trình chính nên chắc chắn rằng nó sẽ chạy vòng lặp liên tục là để cho phép kích hoạt bất cứ khi nào ngắt lá cờ được thiết lập. Ngoài ra kiểm tra sổ đăng ký TMRO của bạn. có vẻ như không phải của nó bao gồm trong khởi tạo của bạn. Hy vọng điều này sẽ giúp.
 

Welcome to EDABoard.com

Sponsor

Back
Top