![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Joe, daß BASIC auf der OM für die Auswertung zu langsam ist, kann ich fast gar nicht glauben. Hast Du schon einen Versuch mit der BASIC-Interruptroutine unternommen? Das Signal muß dafür LOW-aktiv sein. Das kannst Du erreichen, indem Du bei Bedarf einen Inverter (Transistor BC 548 o.ä.) vorschaltest. Der IRQ-Eingang der OM-Controller liegt am gleichen Pin wie PORT[3]. Leider kann nach dem Setzen von IRQEN im CONFIG2-Register der PORT[3] nicht mehr als normaler Digitalport verwendet werden. Im folgenden Programm, das ich mangels passender Hardware nicht unter Realbedingungen testen konnte, wird dieses Problem gelöst, indem das Signal zusätzlich an PORT[4] angeschlossen werden muß. INCLUDE "om.def" 'auf der Open-Midi: INCLUDE "omid.def" DEFINE zaehler BYTE DEFINE port4 PORT[4] CONFIG2=&b01000000 'IRQEN im CONFIG2-Register des Controllers setzen INTERRUPT basicirq 'BASIC-Interruptroutine vereinbaren WHILE TRUE 'Hauptprogramm IF zaehler THEN PRINT zaehler zaehler=0 END IF WEND PROCEDURE basicirq 'Interruptroutine WHILE port4=OFF ADD zaehler,1 WEND RETURN INTERRUPT END PROCEDURE Bitte gib uns Rückmeldung, ob und wie gut es funktioniert! Gruß Dietmar Meine Homepage: http://ccintern.dharlos.de |
Antwort schreiben |