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.