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

Timer0 Kategorie: Programmierung Basic (von Newbie - 5.10.2011 15:23)
Ich nutze:
C-Control Pro Mega32, CC-Pro 32 Application Board
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)