Hallo zusammen, ich brauche echt Eure Hilfe, da ich nicht weiss, was ich noch alles testen kann. Ich Versuche jetzt schon seit geraumer Zeit mit Hilfe eines Stk500/501 und einem ATMega128 ein Zeichen über die Uart1 Schnittstelle zu senden und bekomme es einfach nicht hin. Mit nem Oszi hab ich auch schon am Ausgang gemessen - kommt aber nix raus :-( Der Fehler muss also in der Software liegen (µC hab ich auch schon getauscht). Was kann ich noch tun?? Gruss, Tobi ps: quellcode wurde mit wizard erzeugt
UART1 oder UART0? der hat doch zweie davon...
ja, hat zwei davon.UART1 Kompatibilitätsmodus für den 103er ist nicht eingeschaltet, falls du deshalb gefragt hast
Mach es Dir doch für den Anfang nicht so schwer mit Interrups und Fehlerspeichern .... void uartcommand (char ccommand) { UBRR1H = 0x06; // UBBRH(06) Reloadwert für Highregister UBRR1L = 0x82; // UBRRL= (fquarz/ (16* BAUD) ) -1 (82) Lowregister setbit(PORTD,PD2); // Pullup am RXT aktivieren setbit(UCSR1C,USBS1); // 2Stopbits setbit(UCSR1B,TXEN1); // Sender enablen setbit(UCSR1B,RXEN1); // Empfänger enablen pause(1); // 10 ms Pause UDR1 = ccommand; pause(8); // 80 ms Pause UDR1 = 0x0d; // CR }
Oszi an max232 Ausgang und am µC @flyingwolf Welcher compiler ist das den, bzw. welche header datei? Die ganzen befehle und defines gibt es bei mir nicht.
na ein bisschen musst Du auch noch selbst anpassen, z.B. #define setbit(ADDRESS,BIT) (ADDRESS |= (1<<BIT)) #define clearbit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT)) und für die "pause" gibt es aus der Standartbibliothek ein delay??? ach ja die Baudrate hier ist 300 oder 400 baud. wenn Du 9600 haben willst, musst Du die Reloadwerte entsprechend ändern
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.