英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
关于定时器中断的问题
[打印本页]
作者:
lucky
时间:
2012-8-20 15:34
标题:
关于定时器中断的问题
初学pic,采用p18f45k20单片机,中间用到了定时器0定时中断,中断开启由开关决定,但是按了开关之后RE0始终为零。请各位帮忙看看有关程序有没有错。
void timer0_init(void)
{
RCONbits.IPEN=1;
INTCONbits.GIE=0;
T0CON=0x01;
TMR0H=(65536-sound_tab[k])/256;
TMR0L=(65536-sound_tab[k])%256;
INTCONbits.TMR0IF=0;
INTCONbits.TMR0IE=1;
INTCONbits.GIE=1;
}
/*************中断入口**************/
#pragma code high_vector=0x08
void high_vector(void)
{
_asm
goto timer0
_endasm
}
#pragma code
#pragma interrupt timer0
void timer0(void)
{ if(INTCONbits.TMR0IF==1)
{
INTCONbits.TMR0IF=0;
RE0=~RE0;
TMR0H=(65536-sound_tab[k])/256;
TMR0L=(65536-sound_tab[k])%256;
}
}
void main(void)
{
TRISB=0xFF;
TRISC=0x00;
PORTC=0x00;
TRISD=0x00;
PORTD=0x3f;
ANSEL=0x00;
TRISEbits.TRISE0=0;
RE0=1;
while(1)
{
k=keyscan();
timer0_init();
if(k == 0)
T0CONbits.TMR0ON=0;
else
T0CONbits.TMR0ON=1;
PORTD=led_code[k];
delay(10);
}
}
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2