Re: Timer0 Kategorie: Programmierung Basic (von executer - 12.10.2011 8:20) | ||
Als Antwort auf Re: Timer0 von Achim - 9.10.2011 20:42 | ||
| ||
> > 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 > Hallo! > Ich arbeite mit BASCOM-AVR (IDE) und mir sind zwei Dinge aufgefallen: > 1) Der Timer ist nicht konfiguriert > 2) Es sind keine Interrupts Enabled > > Gegenfrage: Mit welchen Parametern bekomme ich eine Kommunikation mit dem > C-Control Projectboard PRO32? > Hallo, bevor Du irgendetwas ins Forum postest nutze doch unbedingt erst die sufu! Bevor Du mit irgendwelchen Compilern rumfummelst solltest Du es mit der dafür bestimmten IDE umsetzten. Oder leistet Dir MCS Support zur C-Control ? Augen auf, dann siehst wo Du die IDE downloaden kannst. viel Erfolg | ||
Antwort schreiben Antworten: Re: Timer0 (von Newbie - 12.10.2011 10:37) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum