vklaffehn
16.02.2007, 15:38
Hallo, ich hab das Datenblatt von meinem ATTiny26 sowie dies Forum und Google bemüht, aber ich finde irgendwie nirgends den Wert der internen Pullups. Mein Problem konkret ist, das ich einen Zustand erfassen will, entweder einen Widerstand von ca. 1KOhm, oder 20KOhm, mit dem internen Pullup scheint das aber nicht zu funktionieren. Zum Test hängt an PA0 eine LED.
#include <avr/io.h>
#include <util/delay.h>
void init()
{
DDRA = (1<<0); //PA0 out,rest input
PORTA = (1<<1); //enable pullup for PA1, PA0 low
}
int main(void)
{
int cnt;
for (cnt=0;cnt<10;cnt++)
{
PORTA |= (1<<0);
_delay_ms(4000);
PORTA &= ~(1<<0);
_delay_ms(4000);
}
while (1)
{
if ((PORTA & (1<<1)) == 0) PORTA |= (1<<0);
else PORTA &= ~(1<<0);;
}
return 0;
}
Danke!!
#include <avr/io.h>
#include <util/delay.h>
void init()
{
DDRA = (1<<0); //PA0 out,rest input
PORTA = (1<<1); //enable pullup for PA1, PA0 low
}
int main(void)
{
int cnt;
for (cnt=0;cnt<10;cnt++)
{
PORTA |= (1<<0);
_delay_ms(4000);
PORTA &= ~(1<<0);
_delay_ms(4000);
}
while (1)
{
if ((PORTA & (1<<1)) == 0) PORTA |= (1<<0);
else PORTA &= ~(1<<0);;
}
return 0;
}
Danke!!