www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART mit dem AT90S8535


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Kann mir jemand bitte helfen und mir ein Beispielprogramm schicken, in 
dem man vom µC über die UART-SChnittstelle übertrgen kann?

Danke

Max

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steht im Tutorial unter UART.

Gut Holz,

Günter

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Günter!

Ja das hab ich schon gesehen, aber das Tutorial it für den 4333 
geschrieben, beim 8535 heißen die Ports vom UART anders und ich kenn 
mich nicht mehr us g

l.g. Max

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Ports für den Hardware RXD/TXD sind bei beiden gleich PD0/PD1.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab eigentlich die Adressen für die Register gemeint (USRA, 
UCRB,...)

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die werden ja über symbolischen-Namen angesprochen und sind daher auch 
bei allen AT90S indentisch.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jedenfalls bei mir wenn ich es compile im AVR Studio, bringt er die 
fehlermeldung, dass er die adressen nicht kennt.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas hat das Tutorial auf die neuen Namen der Mega Familie 
umgestellt. Ein Vergleich der Datenblätter Mega8 und AT90S8535 hilft 
hier weiter.

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann sich auch die Datei 8535def.inc mal anschauen. Dann findet man 
auch die symbolischen Namen.

Gruß,
Günter

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Also ich hb das Programm jetzt umgeschrieben (hab die Adressen der inc 
Files verglichen).

.include "8535def.inc"

.def temp = r16
.equ CLOCK = 4000000
.equ BAUD = 9600

        ; Stackpointer initialisieren
        ldi temp, LOW(RAMEND)
        out SPL, temp
        ldi temp, HIGH(RAMEND)
        out SPH, temp

        sbi UCR, TXEN                  ; TX aktivieren

        ; Baudrate einstellen
        ldi temp, CLOCK/(BAUD*16)-1
        out UBRR, temp

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

serout:
        sbis USR, UDRE                  ; Warten bis UDR für das nächste
                                          ; Byte bereit ist
        rjmp serout
        out UDR, temp
        ret

Gruß,
Max

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Haut`s denn jetze hin?

Günter

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss es erst noch testen, aber compilen kann ich's jetzt ohne fehler. 
Únd jetzt muss ich (ich hab Windows XP) nur das Hyper Terminal starten 
und die im Tutorial beschriebenen Einstellungen einstellen und dann 
müsst es schon gehn oder?

Gruß,
Max

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aja noch ml ne frage: Wie oft knn ich den Atmel eigentlich Progrmmieren?

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So also ich hab das gnze jetzt mal usprobiert, aber es tut sich leider 
gar nix, ich hoffe nur, dass es nicht n meinem Atmel Board und der 
Serielen Schnittstelle liegt. Hat jemand eine Idee an was es liegen 
könnte?

Danke,
Max

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut,
hast du denn auch einen MAX232 o.Ä. verbaut? Oder versuchst du TXD ubd 
RXD direkt anzuklemmen?
Wenn du ein Oszilloskop hast, messe bitte an TXD vom Prozessor, ob da 
Rechtecke zu sehen sind. Dann den Ausgang (TXD) vom Max testen.
Wenn da nichts ist, die Gleichspannungen am MAX testen, müssen positive 
wie auch negative Spannungen zu messen sein.

Am besten, du stellst mal deine Schaltung hierrein!!!!


Gruß,

Günter

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja lo ich hab den MAX232 verbaut und auch die 5 Kondensatoren. Hab aber 
eldier kein Oszi um die ignale zu messen.

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist denn ein kleines Vielfachmessinstrument vorhanden?

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo ich hab so ein Digitalmultimeter

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.