[AVR单片机] M8定时器1溢出中断号是9?

[复制链接]
978|2
 楼主| sanguanko 发表于 2015-3-8 21:38 | 显示全部楼层 |阅读模式
M8定时器1溢出中断号是9?但是当我无意中把中断号写成了15,似乎也能进中断,接PC0和PC1的LED会交替闪烁,怎么可能呢?求解释,程序如下,用的是ICCAVR。

#include <iom8v.h>
#include <macros.h>

unsigned char i=0;
void timer1_init(void)
{
  TCNT1H = 0XCF;//TC1赋处初值
  TCNT1L = 0X2C;
  TCCR1B = (1<<CS11)|(1<<CS10);//64分频  0X03;
  TIMSK = (1<<TOIE1); //使能TC1溢出中断
}

#pragma interrupt_handler TC1_serve:9
void TC1_serve(void)
{   
     CLI();
         i++;
           TCNT1H = 0XCF;
     TCNT1L = 0X2C;
     if(i<10) PORTC=(0<<PORTC0)|(1<<PORTC1); //PC0和PC1交替闪烁
         else PORTC = (1<<PORTC0)|(0<<PORTC1);
         if(i==20)i=0;
         SEI();
}

void portc_init(void)
{
  DDRC  = 0xFF;//端口PC全部配置为输出
  PORTC = 0xFF;//初始输出为1
}

main()
{
  CLI();
  timer1_init();
  portc_init();
  SEI();
}  
yklstudent 发表于 2015-3-8 21:57 | 显示全部楼层
楼主估计是新人,好新的新人
 楼主| sanguanko 发表于 2015-3-9 00:33 | 显示全部楼层
是的,到今天M8才刚学满一周
您需要登录后才可以回帖 登录 | 注册

本版积分规则

262

主题

290

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部