Hallo, also ich versuche jetzt schon seit 2 Wochen ne verbindung von meinem ATmega8(in verbindung mit MAX232) zu meinem PC(Win2000) hin zu bekommen, aber es will einfach nicht klappen. Ich benutze dazu derzeit das testprog. zum senden eines textes ins Hyper-Terminal, welches hier auf der Seite veröffentlicht ist. Die kofiguration der Bautrate und Stopbits simmt auch. Befor ein neues Zeichen gesendet wird soll ja mit sbis UCSRA,UDRE geprüft werden, ob das nächste zeichen gesendt werden kann bzw. ob UDR empty ist. Mit dieser zeile allerdings sendet er granicht's (gemessen). Lasse ich nun diese Zeile weg und ersetze sie duch eine delay schleife, so sendet der controller bzw. besser gesagt empfängt das Hyperterminal immer weiter Euro zeichen. Hat jemand ne ahnung, ich verzweifele nämlich so langsam daran.
Hi, lade Dir mal das komplette Atmel-Datemblatt für Deinen MC herunter. Da gibt sowohl ain Assembler als auch in C Beispiele für die Anfangskonfiguration, das Senden und das Empfangen. Diese Beispiele gehen 100%ig! Noch ein Tip: Erst das High-Byte beschreiben, dann das Low-Byte! Sebastian
In meinem Bootloaderbeispiel ist eine UART mit drin, probiers mal aus. Der Empfang ist über den Interrupt mit 256 Bytes gepuffert. Den CRC-Code kannst Du rausschmeißen oder drinlassen. getchar ist zum Empfang, putchar zum Senden. Die beiden auskommentierten Zeilen unter uart_init müssen wieder eingefügt werden. Peter
Welche Frequenz muß ich denn für die Berechnung des Wertes für das Bautratenregister nehmen? Die interne Frequenz oder die Oszilatorfrequenz des angeschlossenen Quarzes?
Hi, ich hab n ähnliches Problem. Ich empfange auch Daten mit dem Hyperterminal unter Win98se, aber das sieht dann so aus: €xxüx<xÀxÀxx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€ €xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xx üx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü €xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xø x<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€ €xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xx üx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü €xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xø x<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€ €xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xx üx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü €xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xø x<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€ €xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xx üx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü €xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xø x<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€ €xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xx üx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü €xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xø x<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€ €xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xx üx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü €xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xø x<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€ €xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xx üx<xÀxü€xøx<€€xx€xøx<€€xx€xxxü€ xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx< 8;€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€ xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀ xü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€ xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx< 8;€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€ xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀ xü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€ xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx< 8;€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€ xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀ xü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€ xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx< 8;€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€ xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀ xü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€ xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx< 8;€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€ xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀ xü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€ xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx< 8;€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€ xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀ xü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€ xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx< 8;€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€ xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀ xü€xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€ xøx<€€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx< 8;€xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€ xxüx<xÀxü€xøx<€€xxüx<xÀxü€xøx<€€xxüx< Sollte allerdings "Test!" heißen. (Code stammt vom Tutorialteil auf dieser Seite) Ich bin mittlerweile ratlos. Ich denk es ist was simples, aber ich komm ned drauf. ATmega8515, 4Mhz Quarz, Baudrate 9600 LT1081 als MAX232 ersatz Grüße Xandl
@Xandl: Hi, das schaut so aus, als ob ein nullterminierter String nicht terminiert ist, oder der Pointer nicht auf den String zeigt. Falls Du einen Text so im Codesegment definierst: Text: .DB "Test!",0 dann musst Du den Pointer darauf so setzen: ldi ZH,HIGH(2*Text) ldi ZL,LOW(2*Text) vergisst Du dabei das 2*... landest Du irgendwo und die Routine gibt so lange aus, bis endlich ne Null in der Speicherzelle steht. So far Michael
Ich hab die LÖSUNG!!!!! Die ATmega's laufen,wenn sie Fabrik neu sind, voreingestellt immer mit 1MHz und sie ignorieren den angeschlossenen externen Quarz. Dieser mus mit Pony Prog erst frei geschaltet werden. Näheres hier: http://www.elektronik-projekt.de/include.php?path=content/articles.php&contentid=29&PHPKITSID=36bf35ae7fdf55bcedf503458a54e663
THX @britneypunter war wirklich so. so n sch*! aber was solls. Darauf hätt ich selber kommen können, aber wie gesagt war nur ne Kleinigkeit. mfg Xandl
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.