TRY
or another variant ofCode:@ __CONFIG _INTRC_OSC_NOCLKOUT & _MCLRE_ON & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON CMCON=7 TRISA=0 TRISB=0 PORTA=0 PORTB=0 PIE1 = %00000010 '0------- Disable EE write complete interrupt '-0------ Disable comparator interrupt '--0----- Disable USART receive interrupt '---0---- Disable USART transmit interrupt '----x--- unimplemented '-----0-- Disable CCP1 interrupt '------1- Enable TMR2 to PR2 match interrupt '-------0 Disable TMR1 overflow interrupt T2CON = %00000010 'X------- Unimplemented '-0000--- postscale 1:1 '-----0-- Timer2 off '------10 prescaler 1:16 GIE VAR INTCON.7 PEIE VAR INTCON.6 TMR2IF VAR PIR1.1 TMR2ON VAR T2CON.2 RELOAD CON 131 ON INTERRUPT GOTO ISR TMR2 = RELOAD PR2 = 0 PEIE = 1 ' Enable peripheral interupt GIE = 1 ' enable Global interrupt TMR2ON = 1 ' TMR2 ON GOTO LOOP disable ISR: TOGGLE PORTB.0 TMR2ON = 0 TMR2 = RELOAD TMR2ON = 1 TMR2IF = 0 ' Clear interrupt flag resume enable LOOP: 'TOGGLE PORTB.1 GOTO LOOP
The second one is probably the best method to deal with Timer2. have a look to section 6.0 of your datasheet.Code:@ __CONFIG _INTRC_OSC_NOCLKOUT & _MCLRE_ON & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON CMCON=7 TRISA=0 TRISB=0 PORTA=0 PORTB=0 PIE1 = %00000010 '0------- Disable EE write complete interrupt '-0------ Disable comparator interrupt '--0----- Disable USART receive interrupt '---0---- Disable USART transmit interrupt '----x--- unimplemented '-----0-- Disable CCP1 interrupt '------1- Enable TMR2 to PR2 match interrupt '-------0 Disable TMR1 overflow interrupt T2CON = %00000010 'X------- Unimplemented '-0000--- postscale 1:1 '-----0-- Timer2 off '------10 prescaler 1:16 GIE VAR INTCON.7 PEIE VAR INTCON.6 TMR2IF VAR PIR1.1 TMR2ON VAR T2CON.2 ON INTERRUPT GOTO ISR PR2 = 124 ' load period register for 2mSec PEIE = 1 ' Enable peripheral interupt GIE = 1 ' enable Global interrupt TMR2ON = 1 ' TMR2 ON GOTO LOOP disable ISR: TOGGLE PORTB.0 TMR2IF = 0 ' Clear interrupt flag resume enable LOOP: 'TOGGLE PORTB.1 GOTO LOOP




Bookmarks