Zitat von Phönix
Hallo........
Guck hier.
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIII
'IIIIIII DEMO ZUM BASIC-COMPUTER UNIT M 2.0 (by DIE HARD) IIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIII
'--------------------------------------------------------------------
' Beispiel zum BASIC-COMPUTER mit dem Programmer/Application-Board
'--------------------------------------------------------------------
' ANWENDUNG: Weitere PLM-Ausgänge
'
'--------------------------------------------------------------------
' Das Beispiel zeigt, wie man mit einem Trick weitere PLM-Ausgänge
' Erzeugen kann.
' Es wird der reguläre DA-Ausgang benutzt um einen IRQ zu erzeugen
' (DA-Ausgang mit IRQ verbinden)
' Der Interrupt findet alle 500us statt und wird in der Interrupt
' Routine zu einer Pulsbreitenmodulation verarbeitet.
'
' In diesem Beispiel werden die Ports 1 und 16 (LCD Beleuchtung)
' angesteuert. Der Wert für den PLM-Ausgang wird in der Variablen
' PLM3 bzw. PLM 4 festgelegt. Die PLM-Frequenz ist etwa 25ms, was
' für die Dimmung von Lampen ausreichen sollte.
'
' Das Beispiel fährt im Hauptprogramm den Wert der Variablen PLM3
' durch den Bereich 0 bis 255. Sie sehen wie der zugehörige Ausgang
' Port 16 die Helligkeit der LCD-Beleuchtung am Application-Board
' langsam dimmt.
' Der gerade aktuelle Wert für PLM3 wird am LCD angezeigt.
'---------------------------------------------------------------------
' Achtung:
' Während einer Pause wird der IRQ nicht bearbeitet, Sie dürfen
' im Hauptprogramm also keinen PAUSE-Befehl verwenden.
' Nehmen Sie eine DELAY-Schleife um Pausen zu erzeugen.
'---------------------------------------------------------------------
'--------------------------
'------ I/O PORTS ---------
'--------------------------
define PWMOUT3 port[16]
define PWMOUT4 port[1]
define PWMOUT2 da[2]
define PWMOUT1 da[1]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
define COUNTER byte[1]
define DELAY byte[2]
define PLM3 byte[3]
define PLM4 byte[4]
define ICNT byte[5]
'----------------------------------------------------------------------
INTERRUPT ISERVICE
print"#ON_LCD#";
print"#INIT#";
'----------------------------------------------------------------------
#MAIN_PROGRAM
for DELAY=0 to 255
next
COUNTER=COUNTER+1
PLM3=COUNTER
print"#L101#";COUNTER;" ";
goto MAIN_PROGRAM
'----------------------------------------------------------------------
'--- PLM INTERRUPT SERVICE ----
'----------------------------------------------------------------------
' IRQ CONNECTED TO DA1 OR DA2 - INTERRUPTRATE 500us
#ISERVICE
ICNT=ICNT+5
if ICNT<=PLM3 then PWMOUT3=on else PWMOUT3=off
if ICNT<=PLM4 then PWMOUT4=on else PWMOUT4=off
return interrupt
Lesezeichen