Hallo, ich habe ein Programm geschrieben, dass soweit auch funktioniert. Schalten von Leds nach Zeiteinheiten, gesteuert über den Timer, jedoch habe ich Probleme dabei, einen Eingangsstrom fest zu stellen. Ich habe einfach zwischen +5V u. dem Eingangspin einen Schalter installiert. Daher meine Frage: Wie konfiguriert man nun den Pin in Bascom, so dass wenn der Schalter geschaltet wird, er den Strom an Eingang signalisiert?
Du brauchst noch einen Pull-up oder Pull-down Widerstand. Entweder den intern programmierbaren oder einen externen
> Eingangspin
dem einen?
Sicher dass es ein Eingangspin ist? Hast du eine pulldown mit dabei? 
Sicher dass der Eingangspin Strom anzeigt?
....
  Hallo ok, ich hatte gefragt, wie man es bewerkstelligt. Damit meinte ich, wie man den einen Pin am Port als Eingang konfiguriert.
Ich nochmal: Also, wenn der Schalter +5 V schaltet, brauchst du einen Pull- down Widerstand extern z.B. 10kOhm, sonst hängt der Eingang in der "Luft", wenn der Schalter offen ist. Falls du es ändern kannst, lege den Schalter an GRD( -, 0 Volt)und schalte den internen Pull-up Widerstand ein, dann brauchst Du keinen extra äußeren Widerstand. Wie man den internen Pull- up Widerstand programmtechnisch einschaltet findest du in der BASCOM Anleitung.
$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100
'1000000 (Systemtakt) / 8 Prescaler = 125000 Counts
'125000 Counts / 256 (8 Bit Timer) = 488 Interrupts die Sekunde
Config Timer0 = Timer , Prescale = 8
On Timer0 On_timer0_overflow
Enable Timer0
Enable Interrupts
Dim Prell As Single
Dim A As Integer
Dim B As Single
Dim C As Single
Dim D As Integer
Dim Rechnen As Integer
Config Portc.3 = Output
Roteled Alias Portc.3
Config Portb.0 = Output
Rotled1 Alias Portb.0
Config Portb.1 = Output
Rotled2 Alias Portb.1
Config Portb.2 = Output
Rotled3 Alias Portb.2
Config Portb.3 = Output
Rotled4 Alias Portb.3
A = 0
B = 0
C = 0
D = 0
Config Pinc.0 = Input
Dim Eingang_rot As Byte
Portc.0 = 1
Do
Eingang_rot = Pinc.0
   If Eingang_rot = 1 Then
      If Prell = 0 Then
         Prell = 1
         Timer0 = 0
      End If
   End If
   If Prell = 1 Then
      Roteled = 1
      If C >= 20 Then
         Roteled = 0
         Rotled1 = 0
         Rotled2 = 0
         Rotled3 = 0
         Rotled4 = 0
         A = 0
         B = 0
         C = 0
         D = 0
         Timer0 = 0
         Prell = 0
      Else
         '4 Sekunden langer piepston
         If C < 4 Then
            Piepser = 1
         Else
           Piepser = 0
         End If
         If B = 1 Then
            Rotled1 = 1
            Rotled2 = 0
            Rotled3 = 0
            Rotled4 = 0
         End If
         If B = 2 Then
            Rotled1 = 0
            Rotled2 = 1
            Rotled3 = 0
            Rotled4 = 0
         End If
         If B = 3 Then
            Rotled1 = 0
            Rotled2 = 0
            Rotled3 = 1
            Rotled4 = 0
         End If
         If B = 4 Then
            Rotled1 = 0
            Rotled2 = 0
            Rotled3 = 0
            Rotled4 = 1
         End If
      End If
   End If
Loop
End
On_timer0_overflow:
   If Prell = 1 Or Prell = 2 Then
      '488     1000ms
      ' 48     100ms
      A = A + 1
      D = D + 1
         '500ms
         Rechnen = 48 * 5
         If D = Rechnen Then
            B = B + 1
            If B = 5 Then
               B = 1
            End If
         D = 0
         End If
      If A = 488 Then
         C = C + 1
         A = 0
      End If
   End If
Return
  bascom_frage schrieb: > ich habe ein Programm geschrieben, dass soweit auch funktioniert. > Schalten von Leds nach Zeiteinheiten, gesteuert über den Timer, jedoch > habe ich Probleme dabei, einen Eingangsstrom fest zu stellen. Nein, hast du nicht. An keiner Stelle in deinem Programm hantierst du mit irgendeinem "Eingangsstrom". Wozu auch? Das ist nur eine blöde Ablaufsteuerung, um irgendwelche LEDs nach irgendeinem Schema anzusteuern, dafür braucht man natürlich keinen "Eingangsstrom". > Ich habe einfach zwischen +5V u. dem Eingangspin einen Schalter > installiert. Aha, es ght also im Wesentlichen um die Abfrage eines Schalter/Tasters. Dann ist das gewählte Konzept grundsätzlich ungünstig. Damit das funktionieren kann, bräuchtest du einen zusätzlichen externen Pulldown-Widerstand. Sinnvoller wäre: Schalter/Taster zwischen GND und Pin installieren, denn dann kann man die verfügbaren internen Pullup-Widerstände verwenden. Die muss man dann allerdings natürlich auch aktivieren. Und bei der Abfrage berückichtigen, dass ein "aktiver" Taster/Schalter eine 0 produziert, wenn man den ensprechenden Eingang befragt.
Bisschen planlos... Du hast Pinc.0 als Eingang definiert und auch den Pullup mit Portc.0=1 eingeschltet. Der Taster muß nun zwischen Pinc.0 und Masse und Du mußt auf "0" auswerten, denn der Pin wird dann bei Tastendruck auf GND d.h 0 gezogen. Das eigentliche Programm ist mir zu unübersichtlich, weil die Variablen keine "sprechenden" Namen haben. Such auch mal in der Hilfe nach "Select Case" Das macht die Verzweigerei viel übersichtlicher.
bascom_frage schrieb: > Daher meine Frage: > Wie konfiguriert man nun den Pin in Bascom, so dass wenn der Schalter > geschaltet wird, er den Strom an Eingang signalisiert? DU musst die Ampere runterskillen - insbesondere Freitags.
Dieter F. schrieb: > bascom_frage schrieb: >> Daher meine Frage: >> Wie konfiguriert man nun den Pin in Bascom, so dass wenn der Schalter >> geschaltet wird, er den Strom an Eingang signalisiert? > > DU musst die Ampere runterskillen - insbesondere Freitags. Stehen Dir die Zähne zu eng?
@ Frostbeule: Danke funktioniert...Select Case -> werde ich machen @c-hater: Sinnvoller wäre: Schalter/Taster zwischen GND und Pin installieren-> hab ich gemacht Es funktioniert jetzt...danke
Es ist schon gut das die Leute so ruhig geblieben sind... Hättest schreiben sollen..ich habe keine Ahnung, habe es geschafft einen Code im µC hineinzukopieren, Es gibt tolle Bascombücher, Bascomseiten und Foren. Wie man einen Widerstand für eine LED ermittelt oder eine Ein/Ausgang Pin konfiguriert steht in tausend Foren... aber gut schnell, schnell ist die Mentalität, also nicht wundern wenn die Antwort dementsprechend fällt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
  
  Bestehender Account
  
  
  
  Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
  Noch kein Account? Hier anmelden.
 Thread beobachten
 Thread beobachten Seitenaufteilung abschalten
 Seitenaufteilung abschalten