23-08-2011, 11:55 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Aug 2011
Bài gửi: 2
: |
Cần hỏi về lập trình trên MPLAB
#include <p18f46k20.h>
#pragma config FOSC = HS, WDTEN = OFF, PBADEN = OFF, MCLRE = ON, LVP = OFF char id = 0; void main(void); void init_timer0(); void interrupt_handler(void); void main(void) { TRISD = 0x00; LATD = 0x00; INTCON = 0x20; //disable global and enable TMR0 interrupt INTCON2 = 0x84; //TMR0 high priority RCONbits.IPEN = 1; //enable priority levels TMR0H = 0; //clear timer TMR0L = 0; //clear timer T0CON = 0x82; //set up timer0 - prescaler 1:8 INTCONbits.GIEH = 1; //enable interrupts while(1); } #pragma code interrupt_vector = 0x08 void interrupt_vector(void) { _asm goto interrupt_handler _endasm } #pragma interrupt interrupt_handler void interrupt_handler(void) { INTCONbits.TMR0IF=0; id++; if(id==2) { id = 0; LATD++; } } Ai gải thích dùm em mỗi dòng trong đoạn code trên với ạ. Đoạn này dùng trong nháy 7Led. Em đang học VDK p18f46k20 mà lại vướng mắc ở phần interrgupt và timer. |
|
|