打印

超级菜鸟问一个AVR问题

[复制链接]
1768|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zidanesaha10|  楼主 | 2010-8-7 08:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚刚接触AVR,写了一段很简单的程序(如下)想让某个LED灯亮,用progisp1.67下
#include <iom128v.h>
void main(void)
{
unsigned char i=0;
PORTA = 0xFA;
DDRA  = 0xFF;
DDRE=0XFF;
PORTE=0XFF;//573的锁存端
while(1);
}
那里已经提示下载成功了,但不知为什么灯一直都是全亮,我把原配的一个跑马灯程序下载到开发板上(128的)可以跑,而当我把跑马灯上的一大段延时程序复制加入到上面的程序时,居然又可以实现某个灯两亮灭了,加入延时函数后程序如下:(红色是加进去的)
#include <iom128v.h>
void delay_1us(void)                 //1us延时函数
  {
   asm("nop");
  }

void delay_nus(unsigned int n)       //N us延时函数
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1us();
  }
  
void delay_1ms(void)                 //1ms延时函数
  {
   unsigned int i;
   for (i=0;i<1140;i++);
  }
  
void delay_nms(unsigned int n)       //N ms延时函数
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1ms();
  }


void main(void)
{
unsigned char i=0;
PORTA = 0xFA;
DDRA  = 0xFF;
DDRE=0XFF;
PORTE=0XFF;
while(1);
}
请高手帮忙解决一下,我为这个问题想了好几天

相关帖子

沙发
ayb_ice| | 2010-8-7 09:04 | 只看该作者
配置对了吗

使用特权

评论回复
板凳
zidanesaha10|  楼主 | 2010-8-7 09:14 | 只看该作者
应该是对的吧,我加上一大堆延时函数后它就按规定亮灭了(虽然没用到延时函数),去掉延时函数再下载灯又变成全亮的了

使用特权

评论回复
地板
bigwei| | 2010-8-7 10:24 | 只看该作者
主函数没有调用延时函数!

使用特权

评论回复
5
zidanesaha10|  楼主 | 2010-8-7 21:17 | 只看该作者
不是,你没看清我的问题,再仔细看下啦,拜托

使用特权

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

本版积分规则

0

主题

26

帖子

1

粉丝