UART: µC Bitfolgen senden in asm

Gast #16573
Lesenswert?

Ich möchte Bitfolgen (also z.B.:01001110, 00011101,..) vom µC 
(AT90S4433) an den PC schicken. Suche schon seit einiger Zeit nach den 
benötigten Befehlen, hab aber leider nichts gutes gefunden. Wollte nun 
fragen ob mir hier jemand helfen könnte ?

thx
 dario
Gast #16575
Lesenswert?

ich hab das tut vor einiger Zeit durchgemacht (schon einige Zeit her), 
hab allerdings dabei einige Sachen nicht ganz begriffen, und weil ich 
sachen die ich mache auch verstehen will, verworfen (=vergessen).
Habs nochmal kurz angeschaut, und einige Fragen:
- warum muss man die Pin's 4, 8 und 6 miteinander verbinden (ist das 
wirklich nötig)


Ausserdem müsste ich auch noch wissen wie ich Bitfolgen, die vom PC 
geschickt werden empfangen kann

simon
Gast #16576
Lesenswert?

Hallo Dario,
Das mit den verbundenen Leitungen muss nicht zwingend sein, da sind 
sogenannte Handshakeleitungen (Sendebereitschaft, Betriebsbereitschaft, 
Endgerät bereit) miteinander verbunden. Manches Terminalprogramm 
braucht' s vielleicht (schadet auch nicht).
Datenempfang z.B.:
http://www.mikrocontroller.net/forum/read-4-569.html#569
oder mal unter "Suchen" UART eingeben.
Gast #16577
Lesenswert?

thx, hab mir das mal angeschaut, und da ist mir was aufgefallen:

ldi temp,0xFF ;0xFF ins Arbeitsregister r16 laden
out DDRB,temp ;Inhalt von r16 ins IO-Register DDRC ausgeben

zuerst ladest du FF ins AR r16 und gibst das dann aus.
Aber eigentlich solltest du doch die Eingabe über das UART ausgeben.
naja, bin mir nicht sicher... wollte nur mal fragen...

ausserdem: klappt das alles auch beim 4433 ?

simon
Gast #16581
Lesenswert?

Hab mir jetzt etwas selbst zusammen gebaut/geproggt (siehe datei :) )

hab an den Port B LED's gehängt (an jeden Pin eine) und dachte 
eigentlich, dass, wenn ich jetzt per PC FF schicke, die Lämpchen angehen 
(hab die Lämpchen auf GND gezogen).

Nur leider klappts nicht, kein Leuchten, nichts :(

könntet ihr mal schauen, was da falsch sein könnte?

dario
Angehängte Dateien:
Gast #16587
Lesenswert?

@DARIO
Hatte ich übersehen, weil du zuerst den Port initialisierst. Welches 
Programm nutzt du auf dem PC ?
Simmt dort die Baudrate 9600,8,N,1

Diese könnte noch ein Chargenbedingter Fehler sein,
bei einigen Chargen funktioniert die Befehlsfolge

LOOP:  rjmp  LOOP

in Verbindung mit aktiven Interrupt nicht immer. ATMEL empfiehlt hier:

LOOP:  nop
       rjmp  LOOP
Gast #16588
Lesenswert?

als programm hab ich mir ein eigenes gemacht (C++, WriteFile), aber wenn 
du eins weisst, dass relativ einfach ist (bei Hyperterminal begreif ich 
immer noch nicht, wie ich eine einfache Zeichen-, resp. Bit-Folge senden 
kann), dann sags mir doch, damit ich fehler beim Programm ausschliessen 
kann (obwohl sehr unwahrscheinlich, weil abgeschrieben)

die Baudrate stimmt, insofern N=Keine und kein Protokoll i.O. ist

das mit dem nop hab ich geändert, hat aber nichts gebracht :(

dario

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren