Hallo,

ich arbeite mich gerade in die Atxmega Serie ein und Suche nach einer Möglichkeit,
um den Printbin Befehl der Atmegas nachzuempfinden, da ich mit unterschiedlicher
Anzahl binäre Daten (Konstanten und Variablen) übertragen muss.

(Printbin wird bei Atxmegas im Moment noch nicht unterstützt)

Die Routine ist ja eigendlich sehr einfach.

Code:
_data = &HAA

+00000061:   LDI       R24,0xAA       Load immediate
+00000062:   STS       0x0101,R24     Store direct to data space

Printbin _data ; &HBB ; &HCC

+00000064:   LDI       R19,0x01       Load immediate
+00000065:   LDI       R26,0x01       Variable _data ins X-Register
+00000066:   LDI       R27,0x01       

+00000067:   CALL      0x00000076     Call subroutine

+00000069:   LDI       R24,0xBB       Load immediate
+0000006A:  CALL      0x0000007B     Call subroutine

+0000006C:   LDI       R24,0xCC       Load immediate
+0000006D:   CALL      0x0000007B     Call subroutine

+0000006F:   NOP                      No operation
+00000070:   NOP                      No operation
+00000071:   NOP                      No operation
------------------------------------------------------------------------------------------
Do
Loop
+00000072:   JMP       0x00000072     Jump

End
+00000074:   CLI                      Global Interrupt Disable
+00000075:   RJMP      PC-0x0000      Relative jump
------------------------------------------------------------------------------------------
+00000076:   LD        R24,X+         Load indirect and postincrement
+00000077:   RCALL     PC+0x0004      Relative call subroutine

+00000078:   DEC       R19            Decrement
+00000079:   BRNE      PC-0x03        Branch if not equal
+0000007A:   RET                      Subroutine return

+0000007B:   LDS       R0,0x00C0      Statusregister TxD
+0000007D:   SBRS      R0,5               springe wenn TxD Ready  

+0000007E:   RJMP      PC-0x0003      sonst weiter Status abfragen
+0000007F:   STS       0x00C6,R24     Daten senden
+00000081:   RET                      Subroutine return
Aber ich frage mich, woran erkennt der Compiler, wie oft er die Subroutine für das
Senden aufrufen muss.
Um das ebenso flexibel umzusetzen fehlt mir im Moment eine Idee.

Vielleicht hat ja jemand einen Vorschlag.
Ich würde mich freuen.