Hallo Leute, vielleicht liegt es daran das es schon so spaet ist aber kann mir einer erkaleren warum das nicht klappt ? #include <io.h> #include <progmem.h> #include <iomacros.h> unsigned int wert=0; int main (void) { outp(0x00, DDRD); for(;;) wert=(inp(PORTD)); } Vielen Dank im voraus Michael
Vielleicht solltest Du den Wert auch wieder irgendwo ausgeben? Gruß Markus http://www.elektronik-projekt.de/
War doch ein bisschen spaet. Wenn ich dieses Programm im AVR Studio simuliere muesste eine gedrueckte Taste von PORTD als Hex-Wert in meiner Variablen Wert erscheinen. Tut es aber nicht. Gruss Michael
Ja, war bei mir auch spät :). Du darft nicht PortD einlesen sondern PinD. Ein häufig gemachter Fehler den ich selber übersehen hab :). Gruß Markus http://www.elektronik-projekt.de/
Geht aber leider immer noch nicht PIND hatte ich schon ausprobiert. Liegt es vielleicht an meinem AVR-Studio ??? Vielleicht werden die variablen nicht richtig ausgegeben? Loesung waere super. Gruss Michael
Hat sich erledigt, der Compeiler hat meine Variablen wegoptimiert. Mit Volatile ging es sofort. Gruss Michael
Hallo erstma' ... ich (als neuling ) sas gerade am gleichen problem ... wenn ich von PINn lese gets tatsechlich ... aber wiso muss ich das ? ich blicke durch das Datenblatt wohl nicht so ganz durch...
Pro Port gibt es 3 Register: DDRn Richtung ( Ein- Ausgang ) einstellen Portn Schreib- und lesbares Register in dem der "Sollwert" der Portpins geschrieben wird. Pinn Tatsächlicher Zustand am Portpin.
wie kann ich abfragen ob ein bestimmter pin des ports h oder l is?? laso so... if(porta.pin3==masse)
Nabend, bit_is_set ist mir garnicht bekannt... ich denke da eher an: if (inp(PINA) == 0b00000100) { ... } oder (da avrgcc ja von hausaus keine binärzahlen akzeptiert): if (inp(PINA) == 0x04) { ... }
bit_is_set(PINA,3) ist ein Makro welches in der io.h Headerdatei definiert ist wenn das 3. Bit an PINA gesetzt ist wird eine 1 weitergegeben wenn nicht eine 0 bei bit_is_clear(PINA,3) ist es genau anderstherum
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.