Da steht auch COM1. Die Einstellungen sind alle richtig.
Druckbare Version
Da steht auch COM1. Die Einstellungen sind alle richtig.
Hallo,
vergiss bitte Hyperterminal. Nimm z.B. hterm.
Dann setzt mal eine Brücke zwischen die Controller Pinne TxD und RxD. Pinne dafür auf Eingang oder am besten Programm vorher vom Controller löschen. Jetzt müsstest du, wenn du Zeichen vom PC losschickst, die selben als Echo wieder empfangen.
Gruß
Jens
Ich habe vergessen, die Baudrate umzustellen und habe auf einmal etwas empfangen. Also der Controller sendet irgendetwas, nur nicht das, was ich will. Ich werde jetzt mal einen externen Quarz anlöten und schauen, ob ich dann bessere Ergebnisse bekomme.
Hier ist mal mein Code:
Fusebits richtig gestellt? Wegen Internen und externen quarz?
Die Warteschleifen solle der Compiler wegoptimieren, außer bei -o0. da sollte man besser fertige delays nehmen, sonst zur not eine "volatiles NOP" in die Schleife". In C wäre sonst die benutzung eines timers oder doch der USI sicher von Vorteil. Mit aktiven Warteschleifen wird da immer ein Ziehmlicher Abgleich bis es geht, und schon bei der nächsten Compilerversion gehts von vorne los.
Durch was genau soll ich die Warteschleifen jetzt ersetzen?
Kann man nicht einfach
schreiben?Code:while((UART_PIN & (1 << UART_RXD)))
__asm__ volatile ("nop");
Ich habe es noch nicht benutzt, aber wahrscheinlich wäre es in C am einfachsten den USI block zu benutzen. Da Wird der Bittakt per hardware erzeugt und man muss sich nur noch um start / stopbits kümmern, wenn ich mich richtig erinnere. Vermutlich sollte sich da eine Atmel Application note zu finden.