Gast
#1033172
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.