Jump to content

Recommended Posts

Posted

Hallo..

Derzeit läuft eine fertige MB64e bei mir und ich möchte eine erweitung einbauen die mir z.b alle 5 sec. die Faderwerte erneut sendet. Die Werteausgabe erfolgt als SysEx.

Mios 1.7 ist noch drauf glaube ich.

Wie kann ich das realisieren ?

lg, markus

Posted

Hallo Markus,

man kann das z.B mit einem Timer realisieren, der alle 5 Sekunden ein Flag setzt (einfach ein Bit in einem freien Register) - Dieser Request sollte dann in USER_Tick() abgefragt werden, ist er gesetzt, loescht man ihn wieder, und sendet den Snapshot. Von der Timer Routine aus sollte man nichts senden, da es sich hierbei um eine Interrupt Routine handelt.

Am einfachsten waere es, wenn Du als Timer den Hook USER_SR_Service_Prepare hernimmst, der wird bereits jede Millisekunde aufgerufen. Hier muesstest Du einen Zaehler einbauen, der bei 5000 anfaengt, und mit jedem Aufruf dekrementiert. Ist der Wert 0 erreicht, wird auf 5000 zurueckgesetzt, und das Request Flag gesetzt.

Beispiel (blind programmiert, nicht ausprobiert):


app_defines.h:
MY_CTR_L EQU 0x070
MY_CTR_H EQU 0x071
MY_REQUEST_FLAG EQU 0x072

main.asm:
USER_SR_Service_Prepare

;; decrement counter
decf MY_CTR_L, F
skpc
decf MY_CTR_H, F

;; ...until it reaches zero
movf MY_CTR_L, W
iorwf MY_CTR_H, W
bnz USER_SR_Service_Prepare_NoReload
USER_SR_Service_Prepare_Reload
        ;; reload counter and request snapshot
movlw LOW(5000)
movwf MY_CTR_L
movlw HIGH(5000)
movwf MY_CTR_H
bsf MY_REQUEST_FLAG, 0
USER_SR_Service_Prepare_NoReload

        ;; old code...

;; branch to the Rx/Tx LED handler

goto MIDI_RXTX_Handler

[/code]

Gruss,

        Thorsten.

Posted

Dieser Request sollte dann in USER_Tick() abgefragt werden, ist er gesetzt, loescht man ihn wieder, und sendet den Snapshot. Von der Timer Routine aus sollte man nichts senden, da es sich hierbei um eine Interrupt Routine handelt.

Gruss,

        Thorsten,

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...