Gast
#934618
Ich möchte 2 Register r18 und r19 zu einem 16 Bit Wert speichern. Und dann über UDRO an den PC übergeben
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
Die Zeile mit sts "UDRO,Z" hat laut assember:"Invalid register"
|
Anzeige
|
Register verwenden
Gast
#934618
Ich möchte 2 Register r18 und r19 zu einem 16 Bit Wert speichern. Und dann über UDRO an den PC übergeben
Die Zeile mit sts "UDRO,Z" hat laut assember:"Invalid register"
Gast
#934627
>Die Zeile mit sts "UDRO,Z" hat laut assember:"Invalid register"
Was vielleicht mal zum lesen in der Beschreibung der Assembler-Befehle
führen sollte.
Im übrigen können immer nur 8 Bit in das Datenregister übertragen
werden. Das macht aber nichts, denn Du kannst ja zweimal 8 Bit
übertragen.
Du musst aber noch beachten, das du erst bis zur Übertragung des ersten
Bytes warten musst, bis Du das zweite in UDR0 schreiben kannst.
Z ist kein Register. Es ist eine Bezeichnung für ein Doppel -Register in Zusammenhang mit Zeigeroperationen, und der Inhalt von Z passt auch nicht ins UDR0 hinein. sts kann nur ein Byte auf einmal verwursten. Wenn überhaupt, dann ZL und/oder ZH.
Gast
#935202
hi, bekomme jetzt 2 Byte vom Temp-Sensor, die ich über USART in Labview übergebe. Allerdings weiss ich noch nicht wie ich diese in Labview wieder zusammenkriege. Das UDRO wird ja immer wieder neu beschrieben. einmal mit dem ersten byte dann mit dem zweiten, usw. gibt es keine möglichkeit. die 16 bit dirket zu übertragen. Andre-Atmega168 (Gast) wrote: > hi, > > bekomme jetzt 2 Byte vom Temp-Sensor, die ich über USART in Labview > übergebe. Allerdings weiss ich noch nicht wie ich diese in Labview > wieder zusammenkriege. Das UDRO wird ja immer wieder neu beschrieben. > einmal mit dem ersten byte dann mit dem zweiten, usw. > gibt es keine möglichkeit. die 16 bit dirket zu übertragen. doch, die möglichkeit gibt es, wenn du ein sw-uart für 16 bit bastelst, das ganze nicht über die rx/tx leitungen, sondern über ein handshake-paar der rs232 überträgst und dafür am pc einen eigenen treiber schreibst. datenübertragung über rs232 ist nun mal auf 5-9 datenbits ausgelegt und alle hw-uarts halten sich daran. zum zusammenfügen musst du nur die zwei bytes einzeln übertragen und die empfangenen bytes wieder zusammenfügen. wie das in labview funktioniert weiß ich nicht, aber das müsste recht einfach möglich sein - sonst muss noch ein kleines c-programm dazwischen. Antwort schreiben |
Anzeige
|