|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
25-07-2007, 04:17 AM | #4 |
Đệ tử 3 túi
Tham gia ngày: Dec 2006
Bài gửi: 60
: |
Em viết hàm main() như sau , các ngắt vẫn không hoạt động:
Code:
#define DISABLE_INTERRUPTS_H(); {while(INTCONbits.GIEH) INTCONbits.GIEH=0;} #define DISABLE_INTERRUPTS_L(); {while(INTCONbits.GIEL) INTCONbits.GIEL=0;} #define ENABLE_INTERRUPTS_H(); {INTCONbits.GIEH=1;} #define ENABLE_INTERRUPTS_L(); {INTCONbits.GIEL=1;} #pragma code page void reset_button( void ) { // Reset(); _asm RESET _endasm } void rx_handler( void ) { char c; c = ReadUSART(); putcUSART(c); } void main(void) { TRISA = 0x2F; // A4 for blink led TRISB = 0xDF; // RB5 is output TRISC = 0x90; // LATBbits.LATB5 = 1; LATAbits.LATA4 = 1; OpenADC(ADC_FOSC_16 & ADC_RIGHT_JUST & ADC_8_TAD, ADC_CH8 & ADC_INT_OFF ,3); // ADCON1=0x3; // Vref+ Vdd, Vref- Vss OpenUSART(USART_TX_INT_OFF & USART_RX_INT_ON & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 8); //8 bits, 57600 // Setup for SPI mode SSPSTAT = 0x40; SSPCON1 = 0x30; DISABLE_INTERRUPTS_H(); DISABLE_INTERRUPTS_L(); OpenRB0INT (PORTB_CHANGE_INT_ON & PORTB_PULLUPS_ON & FALLING_EDGE_INT);// setup interrup for RB0 OpenRB1INT (PORTB_CHANGE_INT_ON & PORTB_PULLUPS_ON & RISING_EDGE_INT); // setup interrupt for RB1 ENABLE_INTERRUPTS_H(); ENABLE_INTERRUPTS_L(); while(1); } phím B1 nhấn tới nhấn lui không thấy gì cả (em có chèn thêm vài dòng code để đèn nhấp nháy, nếu reset thì sẽ delay 1 thời gian rồi mới nhấp nháy). thay đổi nội dung bởi: littlephoc, 25-07-2007 lúc 04:35 AM. |
|
|