Hallo zusammen, ich arbeite zur Zeit mit einem STK 600 auf dem ein XMega128A1 sitzt. Als Programmier und Debug Schnittstelle benutze ich ein JTAGICE mkII. Jetzt hab ich folgenden (recht einfachen) Programmcode am laufen: #include <avr/io.h> int main (void) { PORTD.DIR = 0xFF; PORTD.OUT = 0xFF; PORTB.DIR = 0x00; while(1) { PORTD.OUT = PORTB.IN; } } An PortD sind die LEDs angeschlossen und an PortB die Taster. Wenn ich die Taster 0-3 betätige leuchten auch die entsprechenden LEDs, die vier anderen LEDs leuchten dauerhaft. Das kann ich mir auch noch erklären, denn laut Datenblatt liegt auf PORTB Pin4-7 die JTAG-Schnittstelle. Jezt ändere ich den Code folgendermaßen: #include <avr/io.h> int main (void) { PORTD.DIR = 0xFF; PORTD.OUT = 0xFF; PORTA.DIR = 0x00; while(1) { PORTD.OUT = PORTA.IN; } } Jetzt sind die Taster also an PortA angeschlossen, die LEDs weiterhin an PortD. Jetzt leuchten LED 0 und 1 dauerhaft, die anderen lassen sich wie gewünscht schalten. Aber wenn ich das Datenblatt richtig lese, liegt doch auf PortA Pin 0-1 nichts außergewöhnliches, was die von mir gewünschte Funktion beeinflussen könnte. Daher die Frage: Warum läuft das nicht? Danke schon mal für eure Antworten.
Ich hab jetzt das Board mal direkt via USB mit dem PC verbunden und programmieren dann jetzt über die ISP/PDI Schnittstelle. Nachdem ich dann noch das JTAGEN FuseBit als disabled gesetzt hab, war das Problem mit PORTB behoben. Wenn ich aber PORTA an die Taster lege, leuchten die LEDS 0-1 immernoch dauerhaft. Wie kommt das?
Die Ref vom STK600 liegt vermutlich auf PA0 benutz doch mal die Digital Ports anstatt der 2 analogen und schau ob dann alles geht
Ja klar, wenn ich nen anderen Port benutze dann läufts, aber man muss doch auch Port A als digital Port nutzen können. Funktioniert ja mit Port B auch und Port B ist ja schließlich auch für die analogen Geschichten zuständig. Außerdem liegt Aref ja auch nur auf PA0, warum läuft dann nicht wenigstens PA1 wie gewünscht?
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.