hallo,
ich hoffe ihr könnt mir helfen.
ich habe ein kleines board mit einem atmega8 und einem ft232rl. nun will
ich eindfach ein paar daten zum pc schicken, aber es kommt nur 000000
an. egal was ich eigentlich los schick.
das programm soll dann noch für welztere aufgaben erweitert werden, was
aber jetzt vorerst keine rolle spielen sollte.
Hi
Die Makros sind unsinnig. Bei einem Makro wird immer der komplette Code
eingefügt. Damit müllst du dir den Speicher voll. So etwas macht man mit
Unterprogrammen.
MfG Spess
danke für den tipp, aber das ganze hat ja nichts damit zu tun, dass er
nicht das sendet, was er soll ... selbst wenn ich das macro durch ne
funktion ersetz, sendet er IMMER 0
john schrieb:> danke für den tipp, aber das ganze hat ja nichts damit zu tun, dass er> nicht das sendet, was er soll ... selbst wenn ich das macro durch ne> funktion ersetz, sendet er IMMER 0
;-----------Set frame format: 8data, 2stop bit-------------------
ldi temp, (0 << UMSEL) | (1 << USBS) | (3 << UCSZ0)
out UCSRC, temp
Bei einem Mega8 musst du UMSEL setzen, sonst geht das hier schief und
überschreibt dir UBRRH
>> Atmega8> ;-----------Set frame format: 8data, 2stop bit-------> ldi temp, (0 << UMSEL) | (1 << USBS) | (3 << UCSZ0)> out UCSRC, temp
Da fehlt die URSEL. Deshalb wird die zuvor eingestellt Baudrate zerstört
und die Biteinstellungen werden nicht wirksam.
;-----empfangene Daten zur kontrolle zurück senden---------------
5
mov ubertragen, eingang
6
SENDEN
7
8
reti
ok... jetzt sollte es doch eigentlich auch klappen, dass man Daten
empfängt und sich diese dann wieder zur Kontrolle an den PC schickt?
Möchte dazu den Interrupt nutzen, habe auch im Programm noch das "sei"
ergänzt und oben das "reti" und das ";" vor "USART_RXC" entfernt.
Muss man noch irgendetwas beachten?
(mit den empfangenen Daten soll dann noch weiter gearbeitet werden, was
aber kein Problem darstellen sollte)
In deinem EMPFANGEN Makro steht
in ubertragen, UDR0
glaube das müsste
in ubertragen, UDR
heißen, bin aber nicht sicher, da der Compiler an der Stelle schonmal
meckern müsste
Danke, da kann man ja ewig suchen und der compiler (AVRstudio4) hat
nicht gemeckert.
aber kommt davon, wenn man sich seinen code aus einem anderen projekt
mit einem atmega644 kopiert.
Vor allem fällt einem sowas auch nicht selsbt direkt auf.
Hi
>Danke, da kann man ja ewig suchen und der compiler (AVRstudio4) hat>nicht gemeckert.
Warum sollte er? UDR0 ist im Include-File als Bit0 von UDR definiert.
MfG Spess