PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Größe der internen Pullup-widerstände ???



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!!

Hanni
16.02.2007, 15:51
Siehe Datenblatt - Seite 128

Der interne Pullup ist zwischen 20 und 100 Kiloohm groß.


Grüße,
Hanni

vklaffehn
16.02.2007, 15:55
Oh Gott, danke!! Ich sollte mal weniger Drogen nehmen ;-)
Jetzt seh ich's auch. Naja, da werd ich wohl lieber einen externen Pullup nehmen, da weiß ich dann wenigstens, wie groß der ist, und kann mit meinen 1/20 KOhm 'nen Spannungsteiler bauen, der das auf TTL ummünzt.

vklaffehn
16.02.2007, 16:47
Ok, und wenn man dann zum lesen des Pins PINA statt PORTA nimmt, klappt's auch ](*,)