Hallo!
Ich steige momentan in die AVR-Programmierung ein, bin in der Hinsicht aber noch ziemlich grün (in Sachen LED-Spielchen macht mir allerdings keiner mehr was vor!). Deshalb hoffe ich, in diesem großartigen Forum (das mir bislang schon sehr geholfen hat) eine Lösung zu finden, da meine Internet-Recherche seit Stunden erfolglos ist.
Mein Problem:
Ich versuche mich gerade am Programmieren des USART und kann ein "Hello World" auf einem Terminal (bei mir HTerm) ausgeben. Dazu musste ich allerdings die Standard-Verkabelung des STK500 ändern. PORTB ist, wie gehabt, mit den LEDs verbunden. An PORTD waren eigentlich die Taster. Die USART-Ausgabe habe ich nur hingekriegt, indem ich die RS232-Pins (TXD, RXD) mit PORTD verbunden habe, so dass die Taster und deren Funktionalität erstmal weggefallen sind.
Meine logische Schlussfolgerung war, die Taster einfach über einen anderen Port anzusprechen (auf dem STK500 gibt es ja die Ports A-E). So musste ich erstmal lernen, dass mein Tiny2313 keinen Port C bzw. E besitzt.
Mein Ziel ist es, Ein- und Ausgabe in einem Programm unterzubringen. Z.B. könnte man per Terminal solange Zeichen eingeben, bis ein Taster gedrückt wird und die Zeichen wieder zurück an das Terminal gesendet werden.
Wäre es denn möglich, den PORTA zu diesem Zweck zu nutzen? Laut Datenblatt ist dies ja nur ein 3-Bit-Port. Für ein, zwei Taster würde es ja locker reichen, aber meine Versuche in der Richtung sind bislang gescheitert.
Aus mehreren Anweisung der Marke
Code:
while( !(PIND & (1<<PIND0)) ) { ... }
habe ich entsprechend
Code:
while( !(PINA & (1<<PINA0)) ) { ... }
gemacht. DDRA habe ich auf 0x00 (alle Pins als Eingänge) gestellt.
Oder wäre es andersrum möglich, den PORTA für die USART-Ein-/Ausgabe zu nutzen? Ich bin nicht sicher, ob USART vielleicht auf PORTD festgelegt ist o.ä. .
Ein anderer Mikocontroller kommt übrigens nicht in Frage, da die Tiny2313's hier im Betrieb eingesetzt werden.
Lesezeichen