请教一下avr的内部上拉

[复制链接]
3731|13
 楼主| huangqi412 发表于 2007-4-17 11:47 | 显示全部楼层 |阅读模式
int main() //
{
PORTA=0XFF;  //debug
DDRA=0X00;
PORTB=0X00; 

为什么运行到这里我查看到pina是0呢??内部上拉了应该是1才对吧。
这是个测试,没有加其他语句的。
zhiwei 发表于 2007-4-17 12:52 | 显示全部楼层

内部上拉是比较弱的

大概20~30k欧姆的样子,而且上升沿不陡,用示波器看的,如果你在那里带载的话可能会被拉下来。你可以引脚悬空,延时几个周期再检测,可能就好了。以上是我的经验。
 楼主| huangqi412 发表于 2007-4-17 12:59 | 显示全部楼层

avr端口疑问

测试如下
int main()  //debug  用的是m16
{
//DDRA=0XFF;//avrstudio仿真必须加这句,就是先设输出,然后上拉然后设输入才可以打开上拉
PORTA=0X0F; //上拉电阻
DDRA=0XF0;  //高4位输出用led测试,低4位输入用按键测试

while(1)
{
if((PINA&0X01)==0)//如果对应位是0 输出1 如果为1,输出0
PORTA|=(1<<4);
~~~~~~~~~~~~~~~~~~~~~~~~~~~

proteus中怎么做都是错误结果,pina读到一直是0
avrstudio中如果不在前面加一个ddra=0xff的话pina会一直为低,
硬件实验则不要加,很正常 只需要porta=0x0f和ddra=0xf0
请教高手们只是怎么回事呢,难道avrstudio有bug吗?

输入脚我是接的key,key另一端接地。
 楼主| huangqi412 发表于 2007-4-17 13:04 | 显示全部楼层

不是延时问题

DDRA=0XF0;  //高4位输出用led测试,低4位输入用按键测试
后面加延时1ms再读也一样。
 楼主| huangqi412 发表于 2007-4-17 13:12 | 显示全部楼层

别沉了,请指点一下

 楼主| huangqi412 发表于 2007-4-17 19:10 | 显示全部楼层

有人可以解释一下不?谢谢

zhiwei 发表于 2007-4-17 19:29 | 显示全部楼层

自己仔细看看吧,我都用的好好的

我有一个IO口有输入、输出两个功能,口接串10k电阻接按键到地,做输入的按键都可以用的。
 楼主| huangqi412 发表于 2007-4-17 22:04 | 显示全部楼层

硬件电路没错,但是软件仿真错误,难道avrstudio有问题?

hotpower 发表于 2007-4-17 22:40 | 显示全部楼层

我一般不用任何仿真,因为我相信自己的书写习惯

|= (1 << xxx)

&= ~(1 << xxx)
jasonell 发表于 2007-4-18 09:23 | 显示全部楼层

avr studio 明说了, i/o 口上拉不能仿真

过于相信仿真,又不仔细看文档。
 楼主| huangqi412 发表于 2007-4-18 22:12 | 显示全部楼层

哦,这个倒是没看过,但不知道为什么proteus也错误。

高建明 发表于 2007-4-19 18:22 | 显示全部楼层

RE

以前一个12864的LCD,PROTEUS仿真错误,但烧到片子里正确的
 楼主| huangqi412 发表于 2007-4-22 11:48 | 显示全部楼层

看来软件都不可靠

dreambird 发表于 2007-4-22 12:39 | 显示全部楼层

但是没有软件你什么都干不了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

622

主题

24959

帖子

18

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