打印
[AVR单片机]

关于atmega128定时器0的程序问题

[复制链接]
5638|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
453369672|  楼主 | 2010-12-14 13:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是一个atmega128定时器0的程序,通过定时器来控制led闪烁。可下载到板子上没有任何反应,到底是哪里出了问题,求高手赐教!!!
#include <iom128v.h>
#include <macros.h>
unsigned char k;
void port_init (void)//初始化对573的控制,使输出信号可以直接控制led的亮暗
{
   DDRA=0XFF;
   PORTA=0XFF;
  DDRE|=1<<2;
  PORTE=1<<2;
}
void timer0_init(void)
{
   TCCR0 = 0x00; //stop
   ASSR  = 0x00; //set async mode
   TCNT0 = 0x3c; //setup  0.2s
  //TCNT0=0X00;
   OCR0  = 0x00;
   TCCR0 = 0x05; //1024分频
}
#pragma interrupt_handler timer0_ovf_isr:17
void timer0_ovf_isr(void)
{
   TCNT0 = 0x3c;
  //TCNT0=0x00;
   k=k+1;
   if(k>100)
   {
   k=0;
   PORTA ^= 0xFF;
   }
}
void main (void)
{
   CLI();     //disable all interrupts
   port_init();
   timer0_init();
   MCUCR = 0x00;
  TIMSK = 0x01;    //T0溢出使能
   SEI();      //enable interrupts   
   while(1);
}

相关帖子

沙发
453369672|  楼主 | 2010-12-14 15:32 | 只看该作者
寻高手指点啊 初学AVR

使用特权

评论回复
板凳
zhaoyu2005| | 2010-12-15 11:02 | 只看该作者
先确定片子是否跑起来,然后再判断软件是否正确
注意下配置字,也就是熔丝,AVR的熔丝错了就不行了

使用特权

评论回复
地板
453369672|  楼主 | 2010-12-16 11:59 | 只看该作者
芯片没问题的,跑过其他的程序,可以正常工作 3# zhaoyu2005

使用特权

评论回复
5
zhaoyu2005| | 2010-12-16 14:18 | 只看该作者
你下载这个程序时改熔丝没?

使用特权

评论回复
6
453369672|  楼主 | 2010-12-20 12:14 | 只看该作者
没有修改任何设置 5# zhaoyu2005

使用特权

评论回复
7
zhaoyu2005| | 2010-12-20 17:03 | 只看该作者
看下是不是573的控制端电平对不
你应该线学会自己排除简单的问题,比如:
1.单片机运行没,可以写个简单的程序测试端口引脚电平变化
2.单片机的输出正确否
3.外围电路工作正常否

排除完就知道问题出在软件上还是硬件上,然后分段测试,就能知道程序运行到哪里出错了,这样,别人也有针对性,要不是也是猜,别人很少会把你的程序整个看下

使用特权

评论回复
8
453369672|  楼主 | 2010-12-21 21:59 | 只看该作者
你说的这些我都做过,没有任何问题 7# zhaoyu2005

使用特权

评论回复
9
帝霸| | 2010-12-21 23:52 | 只看该作者
把你的系统时钟说明一下。另外你的代码可读性很差,注释和代码实际含义不一致。

使用特权

评论回复
10
zhaoyu2005| | 2010-12-22 09:37 | 只看该作者
既然都做过了,应该知道问题大概出在哪里了吧,那你说下哪个部分出问题了?

使用特权

评论回复
11
453369672|  楼主 | 2010-12-23 17:02 | 只看该作者
应该是程序哪边有问题 10# zhaoyu2005

使用特权

评论回复
12
zhaoyu2005| | 2010-12-24 09:21 | 只看该作者
既然硬件没问题,那当然是程序问题了,不可能都有问题吧,你定位到那个部分了?或者说那个函数?
你这样的态度不适合学单片机,都给你说了方法了,不好好做,只想别人直接指出

使用特权

评论回复
13
pursuer99| | 2011-1-26 15:37 | 只看该作者
看了你的程序 ,端口A 应该是数据口,你初始化时,是上拉输出高电平,你的573是否正常工作 ,它不工作,你的灯肯定不能闪灭变化

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

38

帖子

0

粉丝