英锐恩单片机论坛,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