Forum: Mikrocontroller und Digitale Elektronik PIN-Abfrage mit ATMEGA16


von Martin Krocker (Gast)


Lesenswert?

Hallo@all,

kann mir jemand helfen, wie ich eine PIN-Abfrage mit dem neuen GCC
macht. Ich hab DDRD komplett als Eingänge definiert und einen Taster an
D0 angeschlossen, der Ihn auf GND zieht. Das geht alles.

jedoch geht meine Abfrage nicht:

while(1)
{
if (PIND0==1)

{
PORTB &= ~(1<<LED1); //LED anschalten
}

if (PIND0!=1)
{
PORTB |=(1<<LED1);//LED ausschalten
}
}

Bisher hat es auf die Art und Weise immer funktioniert.
Ich denke es liegt an der neuen GCC Version-hab aber nichts gefunden.

Danke für eure Hilfe Martin

von Rahul (Gast)


Lesenswert?

sicher, dass "PIND0" funktioniert?
Sonst testet man PINs doch immer byte-weise, also: PIND & (1<<0)

von KoF (Gast)


Lesenswert?

hmm... ich denke wenn du ihn als eingang definiert hast, sollte in falle
einer betätigung ein geringer strom in den avr fließen! nicht an gnd,
sondern an vcc mit einem geeignetem vorwiderstand ;-)

von Martin Krocker (Gast)


Lesenswert?

Ich nehm den Taster aufm STK500...da hab ich  einen 10K pull up und
einen 150R wenn ich gegen GND schalte. Der Strom müsste eigentlich
reichen

von Martin Krocker (Gast)


Lesenswert?

Rahul:

Danke, du hattest recht...
Mit der Byteweisen abfrage funzt es.
Trotzdem merkwürdig, da es mit dem alten
Compiler noch funktionierte.

Gruss Martin

von Rahul (Gast)


Lesenswert?

der muß dann richtig alt gewesen sein...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.