打印
[AVR单片机]

atmga48I/O口如何输出方波

[复制链接]
1753|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
suoma|  楼主 | 2010-3-8 20:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的最初想法是通过改变I/O口DDRx中的数值来产生一个触发电平(低电平有效),程序如下:
//ICC-AVR application builder : 2009-10-31 16:33:46
// Target : m48
// Crystal: 4.0000Mhz


    while(1)
{
  addrb = 0x08;
  for(i=0;i<4;i++)    //PB3~PB0依次输出低电平
  {  
   PORTB ^= addrb;
   delay(4);       //4ms
   PORTB ^= addrb;
   a >>=1;
  }
  i=0;
}
可是输出波形很乱,并不产生方波,为什么呢?应该如何解决啊,

相关帖子

沙发
suoma|  楼主 | 2010-3-9 19:21 | 只看该作者
程序有问题?

使用特权

评论回复
板凳
liao_fangxing| | 2010-3-10 11:24 | 只看该作者
本帖最后由 liao_fangxing 于 2010-3-10 11:36 编辑

不太明白LZ的意思:dizzy:
不过要直接用I/O输出方波:
  1:置相应端口为输出
  2:输出H
   3:延时
  4:输出L
   5:延时
  6:跳2
——————这种延时做的方波都不太精确
不妨在定时器里定时修改输出状态

使用特权

评论回复
地板
lianda_| | 2010-3-10 11:37 | 只看该作者
接3楼的话:
除了以上6步外,还要注意i/o驱动能力的问题,如果外接电路输入电阻太小,很可以会使ic接不高,反过来迹然.另外如果外接电路的话要直接或间接接地.

使用特权

评论回复
5
lianda_| | 2010-3-10 11:39 | 只看该作者
建议下次粘程序的同时也把相关电路粘上来,这样分析起来会更方便而且有针对性.

使用特权

评论回复
6
suoma|  楼主 | 2010-4-7 21:30 | 只看该作者
好的,谢谢了

使用特权

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

本版积分规则

82

主题

714

帖子

5

粉丝