Atmel 8 eingangssignal Länger gedrückt Relay nur kurzen Impuls

OP #1520658
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
Gast #1520687
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!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.