📄 timer_int...c
字号:
/*
* Example Source Code For PIC Timers
* THis blinks LEDs on PORTB to show interrupt rates
*
* Barton Dring
* Dring Engineering Services
* www.eng-serve.com
*
* Example only! Use any code at your own risk.
*/
#include<pic.h>
//unsigned int i;
// Interrupt Handler
void interrupt timer1()
{
// Timer1 Interrupt - Freq = 76.29 Hz - Period = 0.013107 seconds
if (TMR1IF == 1) // timer 1 interrupt flag
{
PORTB = ~PORTB; // Toggle PORTB bit1 LED
TMR1IF = 0; // interrupt must be cleared by software
TMR1IE = 1; // reenable the interrupt
TMR1H = 0; // preset for timer1 MSB register
TMR1L = 0; // preset for timer1 LSB register
// i=0;
}
}
// code starts here...
void main()
{
// setup portb to show the interrupts by blibking LEDs
TRISB = 0x00; // PORT is all output...to show the interrupts
PORTB = 0; // start with all outputs low
//Timer1 Registers Prescaler= 1 - TMR1 Preset = 0 - Freq = 76.29 Hz - Period = 0.013107 seconds
T1CKPS1 = 0; // bits 5-4 Prescaler Rate Select bits
T1CKPS0 = 0; // bit 4
T1OSCEN = 1; // bit 3 Timer1 Oscillator Enable Control bit 1 = on
T1SYNC = 1; // bit 2 Timer1 External Clock Input Synchronization Control bit...1 = Do not synchronize external clock input
TMR1CS = 0; // bit 1 Timer1 Clock Source Select bit...0 = Internal clock (FOSC/4)
TMR1ON = 1; // bit 0 enables timer
TMR1H = 0; // preset for timer1 MSB register
TMR1L = 0; // preset for timer1 LSB register
// Interrupt Registers
INTCON = 0; // clear the interrpt control register
TMR0IE = 0; // bit5 TMR0 Overflow Interrupt Enable bit...0 = Disables the TMR0 interrupt
TMR1IF = 0; // clear timer1 interupt flag TMR1IF
TMR1IE = 1; // enable Timer1 interrupts
TMR0IF = 0; // bit2 clear timer 0 interrupt flag
GIE = 1; // bit7 global interrupt enable
PEIE = 1; // bit6 Peripheral Interrupt Enable bit...1 = Enables all unmasked peripheral interrupts
while(1) //endless loop
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -