Forum: Mikrocontroller und Digitale Elektronik UART mit dem AT90S8535


von Max (Gast)


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

von Günter König (Gast)


Lesenswert?

Steht im Tutorial unter UART.

Gut Holz,

Günter

von Max (Gast)


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

von mikki merten (Gast)


Lesenswert?

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

von Max (Gast)


Lesenswert?

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

von mikki merten (Gast)


Lesenswert?

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

von Max (Gast)


Lesenswert?

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

von mikki merten (Gast)


Lesenswert?

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

von Günter König (Gast)


Lesenswert?

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

Gruß,
Günter

von Max (Gast)


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

von Günter König (Gast)


Lesenswert?

Haut`s denn jetze hin?

Günter

von Max (Gast)


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

von Max (Gast)


Lesenswert?

Aja noch ml ne frage: Wie oft knn ich den Atmel eigentlich Progrmmieren?

von Max (Gast)


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

von Günter König (Gast)


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

von Max (Gast)


Lesenswert?

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

von Günter König (Gast)


Lesenswert?

Ist denn ein kleines Vielfachmessinstrument vorhanden?

von Max (Gast)


Lesenswert?

jo ich hab so ein Digitalmultimeter

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
Noch kein Account? Hier anmelden.