Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Timer0 Kategorie: Programmierung Basic (von Achim - 9.10.2011 20:39)
Als Antwort auf Timer0 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: