-
-
Erfahrener Benutzer
Roboter Experte
hallo katiiiiii
UDR=mag_y1;
UDR=mag_y2;
UDR=mag_y3;
UDR=mag_y4;
da gehen doch in wirklichkeit nur 2 bytes hintereinander in die transmit buffer? Hier gehen 4 bytes hintereineinder herein, so schnell kan die usart die doch nicht versenden?
mann sollte sich UDRE (Usart Data Register Empty) bit abfragen und wenn '1' dann die nachte byte in UDR schicken
gruss
Henk
-
hi!
also, i muss halt drei frequenzen, die einen wert von ca. 150khz haben und eine temperatur auf einmal versenden. deswegen hab i ja drei bzw. vier unterprogramme gemacht. jede sekunde soll mein wert aktualisiert werden.
so hab i einfach mal ausprobiert, ob mein partner, der in java ein programm fürs einlesen programiert hat, das programm richtig gemacht hat. es is so ohne probleme gegangen, aber mit dem aufteilen klappts halt net. weil mein partner setzt auf jeden fall, alle vier werte wieder zusammen. des mit den UDRE is bei mir schon immer irgendwie ein problem gewesen, weil das Codebeispiel vom datenblatt bei mir einfach nicht funktioniert hat. i glaub das war irgendwie so:
while ( !( UCSRA & (1<<UDRE)) )
des is schon einige zeit her, wo i da so herumgespielt hab,aber i glaub er hat des mitn UDRE net so ganz kapiert, weil i des so net ansprechen hab können. i hab des dann mit meine lehrer so umgeschrieben, dass i einfach aus der langen while schleife so a kurze gemacht hab. i hab sogar die werte mit den oszi ausgemessen und des dürft hinkommen. fast genau eine sekunde braucht er um einen wert zu senden.
jetzt muss i halt nur mehr drei bzw. vier mal einen großen wert, der halt sehr groß ist, in 4 Bytes aufteilen oder?
i hoff, des geht dann so oder muss i noch was berücksichtigen?
danke für eure hilfe!
Mfg Kati
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen