帮忙看看AVR单片机ATmega128定时器中断程序 30
每秒PA.0口的led亮灭转换一次,用定时器T1作时钟,protues仿真就是通不过,请高手帮看看。#include<iom128v.h>#defineucharunsi...
每秒PA.0口的led亮灭转换一次,用定时器T1作时钟,protues仿真就是通不过,请高手帮看看。
#include<iom128v.h>
#define uchar unsigned char
#define uint unsigned int
#pragma interrupt_handler timer1:15
uchar t=0;
void timer1()
{
TCNT1H=(65536-50000)/256;
TCNT1L=(65536-50000)%256;
t++;
if(t==20)
{
t=0;
PORTA=~PORTA;
PORTA|=0xfe;
}
}
void IO_init()
{
DDRA=0xff;
PORTA=0xff;
}
void T1_init()
{
TCNT1H=(65536-50000)/256;//50ms溢出中断
TCNT1L=(65536-50000)%256;
TCCR1B=0x02;//8分频,8MHz晶振,1us
TIMSK=0x04;
SREG=0x80;
}
main()
{
IO_init();
T1_init();
while(1)
{
;
}
} 展开
#include<iom128v.h>
#define uchar unsigned char
#define uint unsigned int
#pragma interrupt_handler timer1:15
uchar t=0;
void timer1()
{
TCNT1H=(65536-50000)/256;
TCNT1L=(65536-50000)%256;
t++;
if(t==20)
{
t=0;
PORTA=~PORTA;
PORTA|=0xfe;
}
}
void IO_init()
{
DDRA=0xff;
PORTA=0xff;
}
void T1_init()
{
TCNT1H=(65536-50000)/256;//50ms溢出中断
TCNT1L=(65536-50000)%256;
TCCR1B=0x02;//8分频,8MHz晶振,1us
TIMSK=0x04;
SREG=0x80;
}
main()
{
IO_init();
T1_init();
while(1)
{
;
}
} 展开
1个回答
展开全部
首先:楼主干嘛要用protues仿真呢ICCAVR的AVR STUDIO就可以仿真的啊,好像很少有用protues仿真AVR的,一般是AVR STUDIO的;其次:楼主还没有区分开51系列单片机和AVR的区别,个人认为是定时方面出了问题(没细看),楼主还是仔细检查下,再下载到开发板看看效果吧
追问
请问您如何知道我没有区分开51系列和AVR的区别?当然是定时方面出了问题,我就是调定时器T1才写这个程序的,我已经参考各种程序,检查N遍了,能检查出来就不会到这里提问了~~~就4个寄存器的控制,麻烦您看一下问题出在哪。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询