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

Re: Blinkprogramm für c-control ministation Kategorie: Programmierung C (von ManfredP - 11.01.2011 7:31)
Als Antwort auf Re: Blinkprogramm für c-control ministation von ManfredP - 10.01.2011 18:46
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
> > > Hallo!
> > >
> > > ich würde ein blinkprogramm für meine c-control pro ministation
> > > brauchen!
> > >
> > > das blinken soll durchen einen taster am input1 gestartet werden!
> > >
> > > dann soll eine led am output1 2 mal hintereinander zeitverzögert
> > > aufleuchten. dann das gleiche noch mal am output2. und dann immer weiter
> > > und weiter bis der taster am input1 erneut gedrückt wird.
> > >
> > > danke schon mal für die hilfe!
> > >
> > >
> > > gruÃ? chris
> >
> >
> > Hallo Chris,
> >
> > ich sende dir mal was in Basic!! ist aber NICHT getestet!!!!
> > Die Eingänge und Ausgänge müssen noch angegeben werden.
> > Prog ist nur eine Möglichkeit und erhebt keinen hohen Anspruch ;-)
> > Ich hoffe es hilft Dir beim übersetzen in C
> >
> > Viel Spass
> > Manfred
> >
> >
> >
> > Dim bAnzTaster        As Byte     ' Anzahl Taster
> > Dim bAktuellerTaster  As Byte     ' aktuell abgefragter Taster
> > Dim bOn               As Byte     ' Wert für Taster betätigt
> > Dim iX                As Integer  ' Differenz des ersten Eingang zum ersten Ausgang
> > Dim iZaehler          As Integer  ' Zähler für die For-Schleife
> > Dim wZeitverzoegerung As Word     ' Wert in ms
> > Dim Dummy             As Byte
> >
> > Sub main()
> > '
> > ' ungetestet!!!!
> > '
> > ' Eine mögliche Variante in Basic
> > ' Taster werden nacheinander abgefragt und dann entsprechend der Ausgang gesetzt
> > ' Ich kenne den Prozessor nicht!
> > '
> > ' EINGÃ?NGE  für Dummy die entsprechende Werte der Eingänge die benutzt werden eintragen!!
> > Port_DataDirBit(Dummy,0) '       Port Bit Input
> > Port_WriteBit(Dummy,1)   '       Set PULLAB
> > Port_DataDirBit(Dummy,0) '       Port Bit Input
> > Port_WriteBit(Dummy,1)   '       Set PULLAB
> > Port_DataDirBit(Dummy,0) '       Port Bit Input
> > Port_WriteBit(Dummy,1)   '       Set PULLAB
> > ' Anzahl nach Bedarf erweitern
> > '
> > 'Ausgänge für Dummy die entsprechende Werte der Ausgänge die benutzt werden eintragen!!
> > Port_DataDirBit(Dummy,1)'       Port Bit Output
> > Port_DataDirBit(Dummy,1)'       Port Bit Output
> > Port_DataDirBit(Dummy,1)'       Port Bit Output
> > ' Anzahl nach Bedarf erweitern
> > '
> > bAnzTaster        = 3     ' genaue Anzahl angeben!
> > bOn               = 0     ' prüfen ob 1 oder 0 kommt wenn Taster gedrückt ist - ich denke es kommt 0
> > bAktuellerTaster  = 1     ' mit diesem Taster wird begonnen
> > iX                = 0     ' Differenz des ersten Eingang zum ersten Ausgang
> > wZeitverzoegerung = 1000  ' Wert in 1000ms
> > '
> > Do While 1
> >    '
> >    If bAktuellerTaster = bOn Then
> >       For iZaehler = 1 To 4
> >          Port_ToggleBit(bAktuellerTaster+iX)
> >          AbsDelay(wZeitverzoegerung)
> >       Next
>          '
> >       If bAktuellerTaster = bAnzTaster Then
> >          bAktuellerTaster  = 1
> >       Else
> >          bAktuellerTaster++
> >       End If
>
> >    End If
> >    '
> >    '
> > End While
> >
> >
> >
> > End Sub
>
> Upp' s da war schon die erste Macke drin
>
> Ich hoffe das war's
>
> GruÃ?, Manfred


Man sollte den Eingang auch abfragen...



bAnzTaster          = 3     ' genaue Anzahl angeben!
bOn                    = 0     ' prüfen ob 1 oder 0 kommt wenn Taster gedrückt ist - ich denke es kommt 0
bAktuellerTaster  = 1     ' Nummer des Eingang - mit diesem Taster wird begonnen
iX                       = 0     ' Differenz des ersten Eingang zum ersten Ausgang
wZeitverzoegerung = 1000  ' Wert in 1000ms
'
Do While 1                ' Endlosschleife
   '
   If Port_ReadBit(bAktuellerTaster) = bOn Then
      For iZaehler = 1 To 4
         Port_ToggleBit(bAktuellerTaster+iX)
         AbsDelay(wZeitverzoegerung)
      Next
         '
      If bAktuellerTaster = bAnzTaster Then
         bAktuellerTaster  = 1
      Else
         bAktuellerTaster++
      End If
   End If

End While


Gruss Manfred


    Antwort schreiben


Antworten: