Forum: Mikrocontroller und Digitale Elektronik Fehlfunktion am Uart


von Tobi (Gast)


Lesenswert?

Hab den code jetzt verändert aber es funktioniert immer noch nicht! 
Sofort nach der ersten Übertragung(O) werden zwei pins
low und bleiben es auch! Kann mir mal bitte jemand nen code schreiben 
wie ich eine Zahl über den uart empfange und sie dann an portB ausgebe?

//mein code:
.include "8515def.inc"
  .def temp = r16
  .EQU Data = 0x0060

        ldi temp,$FF
     out DDRB,temp
  ldi temp ,RAMEND
  out SPL, temp
  sbi UCR ,RXEN
  sbi UCR, TXEN
  ldi temp, 23
  out UBRR, temp
  out PortB , r20
void:

    sbis USR, RXC
  rjmp void
  in r19,UDR
  out PortB, r19
  rjmp void

von Uwe (Gast)


Lesenswert?

Hi!
Das einzige was nicht stimmt ist das der Stack aus
H und L-Byte besteht, nur den brauchst du momentan garnicht.
Was in R20 drinnsteht ist irgendwie ungeklärt, aber eigentlich auch 
nicht wichtig.
Frage: Quarz = 3,68..MHz und 9600 Baud? Wenn ja, ok.
ääääm an PortB ist Mosi, Miso, SCK drann. Stören die eventuell?

MFG Uwe

von Tobi (Gast)


Lesenswert?

Kann sein das Mosi und Miso stören! Aber wie kann ich das abstellen?

Wie kann ich das mit dem Stack denn ausstellen?

von Uwe (Gast)


Lesenswert?

Hi Tobi!
Stack:

ldi  temp,High(Ramend)
out  SPH,temp
ldi  temp,low(Ramend)
out  SPL,temp  ;Stackadresse festlegen

Mosi/Miso:

teste doch mal mit etwas Progr. ob sich das komplette Port ansprechen 
lässt.

PAP:
-Port auf Ausgang
-an Port $FF ausgeben
-Pause damit was zu sehen ist
-an Port $00 ausgeben
-und noch eine Pause damit was zu sehen ist
-zurück zur $FF-Ausgabe

Stimmen Quarz und Baud? Das ist viel wichtiger.

MFG Uwe

von Tobi (Gast)


Lesenswert?

Ja wenn ich ohne uart arbeite dann läuft alles wie es soll!
Quarz und baud stimmen auch! 3,69MHz und 9600 Baud!!!!

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.