AVR 定时器1的定时问题(mega16,12Mhz)
#include<iom16v.h>#include<macros.h>#defineucharunsignedchar#defineuintunsignedint#pr...
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#pragma interrupt_handler timer1:9
uchar num;
void delay(uint z) //延时子函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void timer_init()
{ //晶振12MHz
TCCR1B = 0x00; //stop
//TIMSK|=BIT(2);
TCCR1B=0x04; //设置TC1 为 CLK/256分频,启动TC1
TCNT1H=0x48;
TCNT1L=0xE5;
//SREG|=BIT(7);
}
void main()
{
init();
CLI();
timer_init();
DDRB=0XFF;
MCUCR = 0x00;
GICR = 0x00;
TIMSK|=BIT(2);
SEI(); //re-enable interrupts
while(1)
{
if(num==2)
{
num=0;
PORTB=0X00;
}
}
}
void timer1()
{
TCNT1H=0x48;
TCNT1L=0xE5;
num++;
}
LED不会闪烁,定时器1初始化好像没问题,中断仿佛不会产生,LED一直亮 展开
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#pragma interrupt_handler timer1:9
uchar num;
void delay(uint z) //延时子函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void timer_init()
{ //晶振12MHz
TCCR1B = 0x00; //stop
//TIMSK|=BIT(2);
TCCR1B=0x04; //设置TC1 为 CLK/256分频,启动TC1
TCNT1H=0x48;
TCNT1L=0xE5;
//SREG|=BIT(7);
}
void main()
{
init();
CLI();
timer_init();
DDRB=0XFF;
MCUCR = 0x00;
GICR = 0x00;
TIMSK|=BIT(2);
SEI(); //re-enable interrupts
while(1)
{
if(num==2)
{
num=0;
PORTB=0X00;
}
}
}
void timer1()
{
TCNT1H=0x48;
TCNT1L=0xE5;
num++;
}
LED不会闪烁,定时器1初始化好像没问题,中断仿佛不会产生,LED一直亮 展开
2个回答
艾普斯
2024-07-18 广告
2024-07-18 广告
稳频稳压电源哪家好?艾普斯电源(苏州)有限公司开始专业研发、制造及营销交流稳压电源,满足全球电子及信息业对电源设备日益蓬勃的市场需求。迄今为止,业已发展成为交流不间断电源、稳压电源、变频电源、中频航空- 军事专用电源、直流电源、逆变电源等产...
点击进入详情页
本回答由艾普斯提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询