• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

网上找的attiny13程序进不了中断

#include#include #define sCNT  100   //10ms*100=1Svolatile unsigned int power,keys,zero,zt;/*----初始化定时器T0为10ms定时 ----*/void timer0_init(void){    CLI();         //关中断  //----以下为ICCAVR向导生成  TCCR0B = 0x00; //stop  OCR0A =0x5D;  OCR0B = 0x5D;  TCNT0 = 0xA3; //set count  TCCR0A =0x00;  //启用通道A强制比较功能  TCCR0B = 0x05; //start timer 定时器采用1024分频  MCUCR =0x00;  TIMSK0 = 0x04; //timer interrupt sources  GIMSK = 0x00;//interrupt sources  SEI(); //re-enable interrupts }/*----T0定时器10ms中断 ----*/#pragma interrupt_handlertimer0_compa_isr:iv_TIM0_COMPAvoidtimer0_compa_isr(void){ PORTB = 255;// COM_BIT(PORTB,PB4);   //定时到,取反PB4}/*---- 主程序 ----*/void main(){  unsigned int t1,t2;  DDRB  = 255;   //11110101,PB3和PB1设为输入  PORTB = 0;   //输出高电平  keys =0;  timer0_init();  //定时器初始化  while (1)         {;}}
全部回复(2)
正序查看
倒序查看
骆记123
LV.5
2
2017-06-18 16:45

#include

#include

#define sCNT  100   //10ms*100=1S

volatile unsigned int power,keys,zero,zt;

/*----初始化定时器T0为10ms定时 ----*/

void timer0_init(void)

{  

  CLI();         //关中断  //----以下为ICCAVR向导生成

  TCCR0B = 0x00; //stop 

 OCR0A =0x5D; 

 OCR0B = 0x5D; 

 TCNT0 = 0xA3; //set count 

 TCCR0A =0x00;  //启用通道A强制比较功能

  TCCR0B = 0x05; //start timer 定时器采用1024分频 

 MCUCR =0x00;

  TIMSK0 = 0x04; //timer interrupt sources 

 GIMSK = 0x00;//interrupt sources 

 SEI(); //re-enable interrupts

 }

/*----T0定时器10ms中断 ----*/#

pragma interrupt_handlertimer0_compa_isr:iv_TIM0_COMPAvoidtimer0_compa_isr(void)

{ PORTB = 255;

}

/*---- 主程序 ----*/

void main()

DDRB  = 255;   

  PORTB = 0; 

  timer0_init();  //定时器初始化

  while (1)       

  {;}}

0
回复
骆记123
LV.5
3
2017-06-18 23:26
@骆记123
#include#include#definesCNT 100 //10ms*100=1Svolatileunsignedintpower,keys,zero,zt;/*----初始化定时器T0为10ms定时----*/voidtimer0_init(void){  CLI();    //关中断 //----以下为ICCAVR向导生成 TCCR0B=0x00;//stop  OCR0A=0x5D;  OCR0B=0x5D;  TCNT0=0xA3;//setcount  TCCR0A=0x00; //启用通道A强制比较功能 TCCR0B=0x05;//starttimer定时器采用1024分频  MCUCR=0x00; TIMSK0=0x04;//timerinterruptsources  GIMSK=0x00;//interruptsources  SEI();//re-enableinterrupts }/*----T0定时器10ms中断----*/#pragmainterrupt_handlertimer0_compa_isr:iv_TIM0_COMPAvoidtimer0_compa_isr(void){ PORTB=255;}/*----主程序----*/voidmain(){ DDRB =255;   PORTB=0;  timer0_init(); //定时器初始化 while(1)     {;}}
已解决,
0
回复