新手求助ATtiny 13A IO问题!!
最近我才开始学习AVR单片机,最近正好一个小项目上需要使用。但是在使用的过程中发现一些问题,很是困扰。这个单片机的目的很简单,就是在PB3,PB4有任意一端口有输入的时候,PB0会输出高电平。
于是我尝试着写了一个简单的程序,但是在面包板上测试的过程中发现,VCC和GND接好,然后用杜邦线把VCC和(PB3或PB4)接上,会发现PB0正常输出5V,马上断掉(PB3或PB4)的输入,这时PB0应该输出为0,但是实际输出PB0在2.8~3.5V跳动,最后稳定在2.8v左右。
于是查询了一下ATtiny 13A的原理图,发现IO里有一个电容Cpin,我在疑问,到底我应该怎么得到PB0输出为0的结果?求助各位老师!!
附:原理图
附2:程序:
#include <iot13v.h>
#include <macros.h>
void main(void)
{DDRB|=(1<<0);//定义pb0输出,且开始输出为低电平
PORTB&=~(1<<0);
DDRB&=~(1<<3);//将pb3,pb4设置为输入,并且开启上拉电阻
DDRB&=~(1<<4);
PORTB|=(1<<3)&(1<<4);
while(1)
{switch(PINB&0x18)
{ case 0x18:
PORTB=0x01;
break;
case0x10:
PORTB=0x01;
break;
case0x08:
PORTB=0x01;
break;
case 0x00:
PORTB=0x00;//测试使用
break;
}
}
} {:lol:}换个马甲我也认识你~~~~~
一个简单的端口初始化你都会写错啊,真服了你啦! PORTB|=(1<<3)&(1<<4);
应该是PORTB |= ((1<<3) | (1<<4)); {:3_44:}学习了
xinhoujue 发表于 2013-4-21 20:20 static/image/common/back.gif
换个马甲我也认识你~~~~~
一个简单的端口初始化你都会写错啊,真服了你啦! ...
我就这一个号啊。。不是马甲,之前是分开写的。。。后来合着写了。。也没太注意,。感谢指正。。 zhujinliang2124 发表于 2013-4-21 20:30 static/image/common/back.gif
PORTB|=(1
感谢指正。。下次注意。 carbonincauc 发表于 2013-4-21 21:21 static/image/common/back.gif
感谢指正。。下次注意。
头像香香和渚薰?
页:
[1]