Hallo! Ich versuche grade ein bisschen mit den Ports zu arbeiten und habe zu Testzwecken folgendes auf einem Breadboard aufgebaut: An PortA: PinX---R 240 Ohm---LED---Vcc und an PortC: PinX---R 12k Ohm---Vcc \ --[ ]-------GND (als Schalter sozusagen) Nun habe ich folgendes Programm geschriben: --- #include <avr/io.h> int main() { DDRA = 0xff; DDRC = 0; while (1) { PORTA=PINC; } } --- Wenn der Microkontroller nun läuft siehts so aus: (kein "Schalter" geschlossen) PA0: LED aus PA1: LED aus PA2: LED an PA3: LED an PA4: LED an PA5: LED an PA6: LED aus PA7: LED aus Beim schließen der Schalter 2-5 an PortC passiert nichts. Wenn man 0,1,6 oder 7 auf GND zieht, gehen die entsprechenden LEDs an (Wobei ich ab und zu schon erlebt habe das wenn ich PC0 gegen GND ziehe, PA0 und PA1 an gehen. Das mag aber evtl auch an der Breadboard konstruktion liegen) Nun habe ich erstmal probiert ein bestimmtes Bitmuster auf PortA auszugeben, was auch korrekt funktionierte. Deshalb gehe ich mal davon aus, dass da beim Eingang etwas nicht korrekt läuft. Die Schaltung läuft an einem Labornetzgerät auf genau 5V. Könnte mir da vielleicht jemand helfen? CU Matthias
Übrigens ... den 12KOhm Widerstand kannst du auch weglassen. Intern ist in allen AVRs ein Pull-up Widerstand eingebaut, den man bei Bedarf zuschalten kann. (Pin als Eingang mit PORTC.X = 1). Zum Problem : bei Megas muss man das JTAG abschalten, um den kompletten PORTC verwenden zu können. (war auch mein erstes AVR-Problem ;)
Jau super! An die Fuses hab ich mich noch nicht rangetraut... ;) Die Pins 2-5 gehen jetzt. Besten Dank!
Das Abschalten des JTAG-Interfaces geht auch ohne Manipulation an den Fuses. Einfach zweimal hintereinander JTD in MCUCSR setzen. ...
Da sieht man mal wieder wie hilfreich Foren sind! ich hatte genau das selbe problem. hab dann das fuse bit gelöscht und nu geht es.. da soll soll erstmal einer draufkommen... im datenblatt steht zwar dass des net geht wenn JATG enabled ist, aber man geht ja nicht davon aus, dass diesen bit dafaultmäßig gesetzt ist und sucht stundenlang nach anderen fehlern.. ein hoch auf mikrokontroller.net gruß martin
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.