[AVR单片机] 为什么出来的不是一个规则的方波?

[复制链接]
2777|3
 楼主| chenczy 发表于 2011-10-15 11:39 | 显示全部楼层 |阅读模式
#include <mega32.h>

void delay1(unsigned int j)     //延时
    {unsigned int i;
     for(i=0;i<j;i++);
     }

void main(void)
{
      //DDxn为1是输出,0是输入;输出时PORTx为1输出高,0输出低;输入时PORTx为1上拉电阻使能
      //端口A的设置
      PORTA=0x00;
      DDRA=0xFF;

     while(1)
      {
        PORTA=0x01;
       delay1(10000);
       PORTA=0x00;
       delay1(10000);
      }
}
用示波器测得PA0口波形是一个不规则的方波。为什么呢?
dpcqz 发表于 2011-10-15 12:22 | 显示全部楼层
上个图看一下,是很不规则,还是很小的差距。一般这样写延时有误差,最好用定时器
NE5532 发表于 2011-10-16 09:31 | 显示全部楼层
上个图看一下,是很不规则,还是很小的差距。一般这样写延时有误差,最好用定时器
dpcqz 发表于 2011-10-15 12:22


请问误差来自于哪里?
zaqxsw11088 发表于 2011-10-18 11:47 | 显示全部楼层
DDRA=0xFF;
PORTA=0x00;
换成这样试试。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

141

主题

791

帖子

0

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