打印
[AVR单片机]

IO口输出异常。。。。

[复制链接]
2675|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kuangcheng100|  楼主 | 2013-4-18 15:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <avr/io.h>

void delay_ms(unsigned int time);


int main(void)
{
        DDRD =0Xff;
        PORTD =0Xff;
        delay_ms(200);
    while(1)
    {      
                PORTD =0X00;
                delay_ms(500);
                PORTD =0Xff;
                delay_ms(500);
                //TODO:: Please write your application code
    }
}

void delay_ms(unsigned int time)
{
        unsigned int i,j;
        for (i=0;i<time;i++)
        {
                for (j=0;j<100;j++);
        }
}

程序如上,但是,结果用示波器观察发现,输出一直是1US的低电平然后3US的高电平,无论怎么去调整delay的值,也是这样的输出。
还有,如果是单纯的仅输出高电平或低电平,不去高低电平切换,就不会异常,不知道这叫什么状况啊,大侠何在?????

相关帖子

沙发
kuangcheng100|  楼主 | 2013-4-18 15:57 | 只看该作者
补充一下,用的是ATMEGA8L芯片、、、、

使用特权

评论回复
板凳
bill_shi68| | 2013-4-18 19:01 | 只看该作者
可能是编译优化掉了,导致延时程序不准
也可以看下汇编代码是否和C代码意图一致

使用特权

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

本版积分规则

29

主题

72

帖子

0

粉丝