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

Re: Ports Kategorie: Programmierung Basic (von Cartasu_Perfektion is´was fĂĽr Anfänger - 30.06.2010 14:54)
Als Antwort auf Ports von Cartasu_Perfektion is´was für Anfänger - 30.06.2010 13:38
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
> Hallo Alle zusammen,
 Ich bin ein ábsoluter noobie was Programmierung angeht, aber um mit zwei lichtschranken+Taktscheibe
 entweder ein links oder ein rechts signal zu bekommen, brauche ich jetzt doch nen microcontroller.
 Bisher hat sich mein Selbststudium auf diskrete Schaltungen beim Bau meiner Fräse beschränkt und
 die C-control vom conrad-Restetisch lag nur rum- jetz muss sie ran, hier der code-der nicht so will
>
> ' Ports fĂĽr Lichtschranken definieren
> '
> #define LS_R Port_ReadBit(16) 'Eingang 1. Lichtschranke
> #define LS_L Port_ReadBit(17) 'Eingang 2. Lichtschranke
>
>
>
> Dim Linksrechts As Byte              ' globale Variablendeklaration
>
> '------------------------------------------------------------------------------
> 'Abfrage der Lichtschranke
> '
> Sub Lichtschranke()
>      Port_DataDirBit(16,PORT_IN)
>      Port_DataDirBit(17,PORT_IN)
>
>       If LS_L = 0 And LS_R = 1 And Linksrechts = 0 Then
>             Linksrechts = 1
>       End If
>
>       If LS_R = 0 And LS_L = 1 And Linksrechts = 0 Then
>             Linksrechts = 11
>       End If
>
>
>       If LS_L = 0 And LS_R = 0 Then
>          Linksrechts = 0
>       End If
>
>
>
>       If LS_L = 1 And LS_R = 1 Then Linksrechts = 0
>
>       End If
>
> Return
> End Sub
> '
> '------------------------------------------------------------------------
> '
> Sub main()
>
>
> ' Ports fĂĽr Richtungsausgabe definieren
>
>     Port_DataDirBit(18,PORT_OUT)
>     Port_DataDirBit(19,PORT_OUT)
> Do
>     Lichtschranke()
>
>     If Linksrechts = 1 Then
>     Port_WriteBit(18,PORT_ON)
>     End If
>
>     If Linksrechts = 11 Then
>     Port_WriteBit(19,PORT_ON)
>     End If
>
>     If Linksrechts = 0 Then Port_WriteBit(18,PORT_OFF):Port_WriteBit(19,PORT_OFF)
>     End If
>
> Loop While 1
> End Sub
 
 Nun, ich fänd es toll wenn mir einer sagte was verkehrt ist,
 denn:

Ich habe die so programmierte C-control (wie man im Code sieht) mit  
Port C an ein Steckbrett angeschlossen, für die eingänge zwei optokoppler,
die Portpin16&17 bei eingang von der Lichtschranke auf 5v ziehen, für die ausgänge
Portpin 18&19 habe ich jeweils einen transistor verwendet, der den optokoppler bei high
mit Masse schaltet, sodass auf der anderen Seite eine LED leuchtet---und nun:
gehen die beiden! LED´s permanent an, und es gibt überhaupt keine zustandsänderung

Trocken, also ohne prozessor verschaltet funktioniert´s


    Antwort schreiben


Antworten: