Hallo Bin nun auf den Geschmack mit den Atmel´s gekommen.Meine Frage: Ich bin zu dumm oder unwissend, den es ist mir nicht möglich unter Bascom einen Taster so zu Programmieren das wenn er länger gedrückt wird (so zwischen 1 - 5 sek.) das das Relay nur ganz kurz ca 50-100ms anzieht. Wenn ich den Taster drücke zieht das Relay an und wenn ich loslasse fällt es wieder ab (oder bleibt mit dem Befehl wait noch angezogen.Ach ja das Relay soll die Ganze zeit solange der Taster gedrückt wird nur die 50-100ms geschaltet werden und wenn man loslässt dann wieder von anfang an beginnen.Möchte ein Telefon mit einem Relay verbinden. $regfile = "m8def.dat" 'Die Anweisung bestimmt Controllertyp, hier AVR Mega 32 $crystal = 4000000 Config Portb.0 = Output 'Ein Pin wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C) Relay Alias Portb.0 Config Pinb.1 = Input Telefon Alias Pinb.1 Do If Telefon = 1 Then Relay = 1 Waitms 50 Relay = 0 End If Loop Danke erstmal
Auch wenn ich nichts mit Bascom am Hut habe, versuche ich mal zu helfen: Dein Programm schaltet solange die Taste betätigt ist das Relais immer wieder für 50ms ein. Suboptimal Mach es doch so: Taste erkannt, Relais 50ms ein. Anschließend Warten bis Taste wieder losgelassen, dann von vorne beginnen Eine andere Lösung wäre: Taste erkannt, 50-ms Stopp-Uhr, die im Interrupt läuft, Starten. Uhr zählt runter. Sobald die Uhr 0 erreicht hat ein Flag setzen. (Passiert im Interrupt) Flag in der Main-Loop abfragen und Relais aus. Anders gesagt: Reagiere nicht auf den Pegel am Schalter sondern auf die Flanke/Pegelwechsel. Schönen Abend!
Hallo Danke erstmal für die flotte Antwort. Das könnte die Lösung sein muss mir nur ansehen wie ich das unter Bascom Lösen kann. mfG Christian
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.