www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART und 2313


Autor: Niki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal.

Kann mir irgendwer ein mini-UART-test Programm für den AT90S2313 
schreiben oder weiss wer wo es so eins gibt dass wirklich und sicher 
auf einem AT90S2313 funktioniert?! (@Andreas: war nicht im UART Tutorial 
einmal was für den 2313?!).

Es braucht nur 'Test' in einer Endlosschleife gesendet werden, mit 
Standardeinstellungen (9600baud, kein flow control etc).

ich habs mit dem code probiert aba da kommt nur schrott am am PC raus. 
Ich hoffe also es hat nix mit der Hardware zu tun sondern mit dem Test 
Programm (ist das aus dem UART Tutorial nur abgeändert)


.include "2313def.inc"         ;bzw. 2333def.inc

.def temp = r16

ldi temp, RAMEND
out SPL, temp

sbi $0a,TXEN                 ;TX aktivieren
ldi temp,4000000/(9600*16)-1   ;Baudrate 9600 einstellen
out $09,temp

loop:
ldi temp, 'T'
rcall serout       ;Unterprogramm aufrufen
ldi temp, 'e'
rcall serout       ;Unterprogramm aufrufen
ldi temp, 's'
rcall serout       ;Unterprogramm aufrufen
ldi temp, 't'
rcall serout       ;Unterprogramm aufrufen
ldi temp, '!'
rcall serout
ldi temp, 10
rcall serout
ldi temp, 13
rcall serout
rjmp loop

serout:
  sbis $0b,UDRE
  rjmp serout
  out $0c, temp
ret

Autor: Niki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja, was ich noch vergessen habe!

Ich hab' einen 11.0592 Quarz, aber mit
ldi temp,71

gehts auch nicht..kommt anderer Schrott :((

Autor: Niki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okok, doch nicht!

Scheint nun zu funktionieren. Der Fehler lag ja an was sehr komischen: 
Der MAX232 scheint kaputt zu sein. Wenn ich einen anderen original 
MAX232 verwende geht es.

Kann es sein dass das ST Devirat nicht 100% (Pin etc) kompatibel ist?

Heissen tut er ST232CN

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Niki,

ich glaube die Zeile

ldi temp,4000000/(9600*16)-1 ;Baudrate 9600 einstellen

bezieht sich auf 4 MHz.

Es müsste wohl

ldi temp,11059200/(9600*16)-1 ;Baudrate 9600 einstellen

heißen.

Experten mögen mich berichtigen!

Grüße,

   Sebastian

Autor: Niki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss, hab' ich ja schon oben geschrieben dass es mit der 11 Mhz 
Einstellung auch nicht geht (ldi temp,71) aber wie schon gesagt, das 
Problem ist bereits behoben

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.