大佬們好!我用ATTINY24A做一個按鍵控制IO輸出的功能。
原理圖如下:
目前的問題是:
1、我的按鍵消抖好像沒作用(調不同的DELAY時間,有變化,但不解決問題)
2、在我PA0按鍵按下不松手時(也就是按鍵輸入一直為0)。這個時候,PB1口輸出為0.4V,只有我松開按鍵以后,PB1口才會變為0V或3.3V。
原代碼如下:
#include <avr/io.h>
void delay (unsigned int ms);
int main(void)
{
unsigned char temp=0;
while(1)
{
temp = (PINA & (_BV(DDA0))); //KEY
if (!temp)
{
delay(200);
if(!temp)
{
DDRB = 0x0F;
PORTB = 0x00;
}
}
temp = (PINA & (_BV(DDA0))); //KEY
if (!temp)
{
delay(200);
if(!temp)
{
DDRB = 0x0F;
PORTB = 0x02;
}
}
}
return 0;
}
void delay (unsigned int ms)
{
unsigned int i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<1000;j++);
}
}
請各位大佬幫忙看看是什么問題,謝謝!
|