#include #include #include #include //#include "init.h" //************************************************************* //************************************************************* __CONFIG(1,XINST_OFF & FOSC_HS1 & PLLCFG_OFF & IESO_OFF); __CONFIG(2,WDTEN_OFF); __CONFIG(4,STVREN_OFF); //************************************************************* //************************************************************* #ifndef _XTAL_FREQ // Unless already defined assume 4MHz system frequency _delay()cycles // This definition is required to calibrate __delay_us() and __delay_ms() #define _XTAL_FREQ 10000000 #endif //************************************************************* //************************************************************* #define LED_ZLTL LATCbits.LATC0 // #define LED_ZLTH LATCbits.LATC1 // #define LED_CERL LATCbits.LATC2 // #define LED_CERH LATCbits.LATC3 // #define LED_RW LATCbits.LATC5 // #define tl0 RB0 // #define tl1 RB1 // #define tl2 RB2 // //************************************************************* static unsigned int led_timer; // timer value for relay driver static unsigned int led_timer2; // timer value for relay driver //************************************************************* void init(void); //************************************************************* // High-priority service void interrupt my_isr(void){ /***** SerIN 2 Code ************************************/ // if((RC2IF) && (RC2IE) && (RC2IP)) { // ked je plny RCREG? // serin2(); // } /***** Timer 0 Code ****************************************/ if((TMR0IE)&&(TMR0IF)) { // timer interrupt if(led_timer2){// is the relay timer running? led_timer2--; // decrement it }else{ LED_CERL ^= 1; led_timer2 = 16; // start the timer } TMR0IF=0; // clear event flag } /***** SerIN 1 Code ************************************/ // if((RC1IF) && (RC1IE) && (RC1IP)) { // ked je plny RCREG? // serin1(); // } /***** SerOUT 1 Code **********************************/ // if((TX1IF) && (TX1IE) && (TX1IP)) { // ked je prazdny TXREG? // serout1(); // } //************************************************************* //************************************************************* } // Low-priority service void low_priority interrupt my_isr_low(void){ /***** Timer 2 Code *****/ if((TMR2IE)&&(TMR2IF)&&(!TMR2IP)){ if(led_timer){// is the relay timer running? led_timer--; // decrement it }else{ LED_ZLTL ^= 1; LED_CERH ^= 1; led_timer = 10000; // start the timer } TMR2IF=0; // clear event flag } } //************************************************************* void main(void) { unsigned char config; init(); config = 0b00010000; Open1USART(config,31); for(;;){ Delay10KTCYx(100); Write1USART ('A'); } } //************************************************************* void init(void) { TRISA = 0b00111111; TRISB = 0b00000111; TRISC = 0b10000000; PORTA = 0b00000000; PORTB = 0b00000000; PORTC = 0b10000000; ANCON0 = 0x00; ANCON1 = 0x80; ADCON0 = 0x00; ADCON1 = 0x00; ADCON2 = 0x00; RCON = 0xfc; INTCON = 0xc0; INTCON2 = 0xff; INTCON3 = 0x00; PIR1 = 0x00; PIR2 = 0; PIR3 = 0x00; PIR4 = 0; PIR5 = 0; PIE1 = 0x02; PIE2 = 0; PIE3 = 0x00; PIE4 = 0; PIE5 = 0; IPR1 = 0x32; IPR2 = 0; IPR3 = 0; IPR4 = 0; IPR5 = 0; T0CON = 0x88; T2CON = 0x62; PR2 = 39; } //*************************************************************