D.0 und D.1 als I/O-Ports
Verfasst: Fr 30. Aug 2019, 16:37
Zunächst sieht es ganz einfach aus: Unter Bascom lassen sich mit
DDRD = &B00000011
die Ports D.0 und D.1 als Ausgänge einrichten. Damit sollten Leuchtdioden (mit Vorwiderständen) zum Leuchten gebracht werden können. Z. B. sollten mit dem Programmschnipsel
nun die zwei LEDs bei Port D.0 und D.1 abwechselnd blinken. Das tun sie in Wirklichkeit leider aber gar nicht - zumindest bei meinem Nano-Board!
Der Grund ist: Diese beiden Anschlüsse werden vom Nano-Board für die serielle Kommunikation benutzt, insbesondere auch vom Bootloader. Das Schaltbild für mein Nano-Board zeigt: Elektronische Probleme bzw. Konflikte mit dem CH340 sollte es nicht geben; das wird auch dadurch bestätigt, dass das Problem bestehen bleibt, wenn das Board nicht über ein USB-Kabel mit einem PC verbunden ist und anderweitig mit Strom versorgt wird.
Könnte vielleicht nach dem Bootloaden die UART des Atmega328 noch aktiviert sein? Wir schalten die beiden Kommunikationsleitungen RX und TX mit den beiden BASCOM-Befehlen
Ucsr0b.txen0 = 0
Ucsr0b.rxen0 = 0
aus. Und siehe da: Jetzt blinken die beiden LEDs tatsächlich!
Offensichtlich werden hier am Ende des Bootloadens RX und TX nicht deaktiviert. Da es verschiedene Bootloader für das Nano-Board gibt, besteht die Möglichkeit, dass es auch Bootloader gibt, die RX und TX sehr wohl deaktivieren; dann sollten diese Probleme nicht auftauchen.
.
DDRD = &B00000011
die Ports D.0 und D.1 als Ausgänge einrichten. Damit sollten Leuchtdioden (mit Vorwiderständen) zum Leuchten gebracht werden können. Z. B. sollten mit dem Programmschnipsel
Code: Alles auswählen
DDRD = &B00000011
do
PortD = &B00000001
waitms 250
PortD = &B00000010
waitms 250
loop
Der Grund ist: Diese beiden Anschlüsse werden vom Nano-Board für die serielle Kommunikation benutzt, insbesondere auch vom Bootloader. Das Schaltbild für mein Nano-Board zeigt: Elektronische Probleme bzw. Konflikte mit dem CH340 sollte es nicht geben; das wird auch dadurch bestätigt, dass das Problem bestehen bleibt, wenn das Board nicht über ein USB-Kabel mit einem PC verbunden ist und anderweitig mit Strom versorgt wird.
Könnte vielleicht nach dem Bootloaden die UART des Atmega328 noch aktiviert sein? Wir schalten die beiden Kommunikationsleitungen RX und TX mit den beiden BASCOM-Befehlen
Ucsr0b.txen0 = 0
Ucsr0b.rxen0 = 0
aus. Und siehe da: Jetzt blinken die beiden LEDs tatsächlich!
Offensichtlich werden hier am Ende des Bootloadens RX und TX nicht deaktiviert. Da es verschiedene Bootloader für das Nano-Board gibt, besteht die Möglichkeit, dass es auch Bootloader gibt, die RX und TX sehr wohl deaktivieren; dann sollten diese Probleme nicht auftauchen.
.