ASM -> Bascom -> ATmega16

Liebe Gemeinde,

bei meinem immernoch ersten Controllerprojekt habe ich ein mittleres Problem bei der Einbindung von Assemblercode mittels Bascom. Für eine Routine die mit 250kBaud über die Serielle sendet (DMX), möchte ich gerne zum zwecke der performance asm benutzen und selbiges in Bascom aufrufen (mit letzterem einfach die Bytes zur verfügung stellen). Ich habe eine Lib gebaut, habe aber probleme beim compilieren, die vermutlich an Sprungzielen hängt:

lib: [send_dmx_byte] Send_dmx_byte : Sbi Ucsrb , 0 'Set 9th Bit (Stoppbit 1) Out Udr , Dmx_byte 'Byte must be in DMX_BYTE-Register nop Wait_sending : Sbis Ucsra , 6 'Wait until Byte is sent rjmp WAIT_SENDING sbi UCSRA,6 'Clear TX Complete Flag by writing a 1 ret [end]

--------------------------- Ergebnis: [send_dmx_byte] Send_dmx_byte : Sbi Ucsrb , 0 'Set 9th Bit (Stoppbit 1) .OBJ BF2F .OBJ 0 Wait_sending : Sbis Ucsra , 6 'Wait until Byte is sent rjmp WAIT_SENDING .OBJ 9AFE .OBJ 9508 [end]

die Fehlermeldungen deuten auch darauf hin das irgendwas mit den Sprungzielen nicht stimmt, werden offensichtlich auch nicht compiliert(?). Wie müsste ich korrekterweise ein Sprungziel, das keine einzelne Routine ist, notieren? Kann man auch sagen 'gehe 3 Befehle zurück'? Und ja, der Code ist natürlich abgeschrieben und umgenutzt ;o))

Hat vielleicht jemand einen Tipp für mich? So langsam scheint es kompliziert zu werden bei mir ;o)))

Danke euch vielmals, bye uwe

Reply to
Uwe 'hammernocker' Roßberg
Loading thread data ...

Uwe 'hammernocker' Roßbergschrieb:

Vielleicht informierst du dich besser hier und fragst gegebenenfalls nach:

formatting link
Gruss, Joachim Riehn

Reply to
Joachim Riehn

Joachim Riehn schrieb:

Hmm, ja, danke Dir. War vielleicht nicht der optimale Weg hier. Ich dachte eventuell ist das Problemchen nur so das man es gleich sieht, wie ich inzwischen weiss ist das nicht der Fall ;o))

danke trotzdem

bye uwe

Reply to
Uwe 'hammernocker' Roßberg

Uwe 'hammernocker' Roßberg schrieb:

Falls jemand zufällig mit dem gleichen Problem meinen Artikel findet, hier die Lösung:

zwischen Sprungzielname und Doppelpunkt darf kein Leerzeichen sein. Da wird aber, je nach art der Bearbeitung, von Bascom selber eingefügt.

---> Die Zeile mittels Zeilenwechelschaltung (enter) verlassen, nicht die Pfeiltasten benutzen.

HTH (irgendwann man jemandem ;o)), bye uwe

--
AIM: hammernocker2000 ## ICQ: 115118874 ## www.pssgzudresden.de
Jürgen Gerkens in d.r.f. : "... gerade ein Polfilter ist als
Schutzfilter auch nicht viel schlauer, als die Frontlinse zum Schutz
vor Streulicht zu lackieren. ;-)"
Reply to
Uwe 'hammernocker' Roßberg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.