Timer0 Kategorie: Programmierung Basic (von Newbie - 5.10.2011 15:23) | ||
| ||
Hallo alle miteinander. Vielleicht könnt Ihr mir weiter helfen. Ich befasse mich seit kurzem mit der Programmierung der C-Control PRO Mini-Station. Nun habe ich ein kleines Programm geschrieben, doch es funktioniert leider nicht. Beschreibung des Programms: Wenn der Input1 der C-Control Pro Mini-Station auf Masse gezogen wird (0VDC), soll ein Timer gestartet werden. Nach Ablauf einer vorgegebenen Zeit, soll eine globale Variable auf "true" gesetzt werden. Wenn diese Variable "true" ist, soll der Output2 gesetzt werden. (LED am Ouput2 soll leuchten) Das Programm ist in basic geschrieben. Nun mein Problem: Er setzt, wenn der Eingang auf Masse gezogen ist, den Ausgang nicht. Somit leuchtet auch die LED nicht! Kann mir jemand sagen was an diesem Programm falsch ist. Schon mal vielen Dank im Vorraus! Quellcode: '******************************************************************************* 'Das Programm soll wenn am PortD.3 0VDC anliegen einen Timer starten. 'Nach Ablauf dieses Timers soll der PortC.3 gesetzt werden (LED leuchtet). '******************************************************************************* 'Port-Eingänge mit Nämen verweisen #define Input 27 'Input1 PortD.3 'Port-Ausgänge mit Nämen verweisen #define LED 19 'Output2 PortC.3 #define PORT_ON 1 #define PORT_OFF 0 Dim VarTimer As Byte 'Globale Variable 'Interrupt Timer Sub Timer0_ISR() Dim irqcnt As Integer VarTimer = 1 Timer_T0Stop() 'Timer0 anhalten irqcnt=Irq_GetCount(INT_TIM0COMP) End Sub Sub main() 'Port als Ausgänge deklarieren Port_DataDirBit(LED,PORT_OUT) 'PortC.3 als Ausgang (PORT_OUT= 1) 'Port als Eingänge deklarieren Port_DataDirBit(Input,PORT_IN) 'PortD.3 ist Eingang (PORT_IN= 0) 'Pull-up Widerstand des Eingangs aktivieren Port_WriteBit(Input,1) 'Interrupt Service Routine definieren Irq_SetVect(INT_TIM0COMP,Timer0_ISR) 'Startvorgang If Port_ReadBit(Input)=0 Then 'Abfrage ob Eingang gesetzt ist Timer_T0Time(100,PS0_1024) 'Zeit festlegen und Timer0 starten (100x69,44 µs) End If If VarTimer=1 Then Port_WriteBit(LED, PORT_ON) End If End Sub | ||
Antwort schreiben Antworten: Re: Timer0 (von Achim - 9.10.2011 20:42) Re: Timer0 (von executer - 12.10.2011 8:20) Re: Timer0 (von Newbie - 12.10.2011 10:37) Re: Timer0 (von Achim - 9.10.2011 20:39) Re: Timer0 (von Jan - 9.10.2011 14:32) Re: Timer0 (von Newbie - 12.10.2011 14:24) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum