ljmarkus Posted August 22, 2006 Report Share Posted August 22, 2006 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 Quote Link to comment Share on other sites More sharing options...
TK. Posted August 22, 2006 Report Share Posted August 22, 2006 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 0x070MY_CTR_H EQU 0x071MY_REQUEST_FLAG EQU 0x072main.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_NoReloadUSER_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, 0USER_SR_Service_Prepare_NoReload ;; old code... ;; branch to the Rx/Tx LED handler goto MIDI_RXTX_Handler[/code]Gruss, Thorsten. Quote Link to comment Share on other sites More sharing options...
ljmarkus Posted August 22, 2006 Author Report Share Posted August 22, 2006 Hallo Thorsten..Danke, wede ich die Nacht mal ausprobieren und dann berichten.lg, markus Quote Link to comment Share on other sites More sharing options...
ljmarkus Posted August 23, 2006 Author Report Share Posted August 23, 2006 So habe es mal eingetragen.Wurde ohne Fehler compiliert aber es tut sich nix. Es werden keine Snapshots gesendet.lg, markus Quote Link to comment Share on other sites More sharing options...
TK. Posted August 23, 2006 Report Share Posted August 23, 2006 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, Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.