超级菜鸟问一个AVR问题

[复制链接]
2335|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 | 显示全部楼层
主函数没有调用延时函数!
 楼主| zidanesaha10 发表于 2010-8-7 21:17 | 显示全部楼层
不是,你没看清我的问题,再仔细看下啦,拜托
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

26

帖子

1

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