Hallo zusammen, ich habe folgenden Assembler-Code auf meinen Atmega8 gebracht, der auf dem myAVR MK2 ist. Leider passiert in meinem Terminal gar nichts und auch die LEDs, die den Datenfluss auf dem mySmartUSB anzeigen sollen (grün), leuchten dauerhaft. .include "m8def.inc" .def temp = r16 ; Register für kleinere Arbeiten .def zeichen = r17 ; in diesem Register wird das Zeichen an die ; Ausgabefunktion übergeben .equ F_CPU = 3686400 ; Systemtakt in Hz .equ BAUD = 9600 ; Baudrate ; Berechnungen .equ UBRR_VAL = ((F_CPU+BAUD*8)/(BAUD*16)-1) ; clever runden .equ BAUD_REAL = (F_CPU/(16*(UBRR_VAL+1))) ; Reale Baudrate .equ BAUD_ERROR = ((BAUD_REAL*1000)/BAUD-1000) ; Fehler in Promille .if ((BAUD_ERROR>10) || (BAUD_ERROR<-10)) ; max. +/-10 Promille Fehler .error "Systematischer Fehler der Baudrate grösser 1 Prozent und damit zu hoch!" .endif ; Stackpointer initialisieren ldi temp, HIGH(RAMEND) out SPH, temp ldi temp, LOW(RAMEND) out SPL, temp ; Baudrate einstellen ldi temp, HIGH(UBRR_VAL) out UBRRH, temp ldi temp, LOW(UBRR_VAL) out UBRRL, temp ; Frame-Format: 8 Bit ldi temp, (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0) out UCSRC, temp sbi UCSRB,TXEN ; TX aktivieren loop: ldi zeichen, 'T' rcall serout ; Unterprogramm aufrufen ldi zeichen, 'e' rcall serout ; Unterprogramm aufrufen ldi zeichen, 's' rcall serout ; ... ldi zeichen, 't' rcall serout ldi zeichen, '!' rcall serout ldi zeichen, 10 rcall serout ldi zeichen, 13 rcall serout rcall sync rjmp loop serout: sbis UCSRA,UDRE ; Warten bis UDR für das nächste ; Byte bereit ist rjmp serout out UDR, zeichen ret ; zurück zum Hauptprogramm ; kleine Pause zum Synchronisieren des Empfängers, falls zwischenzeitlich ; das Kabel getrennt wurde sync: ldi r16,0 sync_1: ldi r17,0 sync_loop: dec r17 brne sync_loop dec r16 brne sync_1 ret
Hi
>.equ F_CPU = 3686400
Wo kommt diese Frequenz her?
MfG Spess
Im Programm sehe ich keine Auffälligkeit; ich würde den Fehler in der Hardware suchen.
Gerrit schrieb: > auch die LEDs, die den Datenfluss auf dem mySmartUSB anzeigen sollen > (grün), leuchten dauerhaft. Sieht richtig aus. Und wenn die LED Tx anzeigt, ist es auch richtig, dass die dauerhaft leuchten (dein Programm sendet dauerhaft) Problem also eher Termionalprogrammeinstellungen/Verkabelung.
Gerrit schrieb: > ich habe folgenden Assembler-Code auf meinen Atmega8 gebracht, der auf > dem myAVR MK2 ist. Leider passiert in meinem Terminal gar nichts und Das ist ja 1:1 vom Tutorial? Bis auf die CPU Frequenz. Da kann doch eigentlich nichts faul dran sein. Fuses am Mega8 eingstellt? Mehr Infos über die HW und den Aufbau. TX/RX vertauscht?
Gerrit schrieb: > UART bei Atmega8 funktioniert nicht Wenn ich solche Thread-Titel lesen muss, dreht sich mir immer der Magen um. Richtig müsste es heißen: "Anwender von ATMega8 hat momentan keinen Plan..." Großartig wäre dann auch noch eine detaillierte Vermutung, wo das liebe Forum denn bitte den Fehler suchen und finden soll. Gerrit schrieb: > Sorry, nun gehts im Arduino Terminal. Und woran lag es?
:
Bearbeitet durch User
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.