Benötige Hilfe bei Programmierung mit BASCOM und ATtiny13
Hallo zusammen,
könnt Ihr mir helfen dieses zu realisieren.
Besitze einen ATtiny13 und möchte am Eingang einen Reedkontakt
anschließen. Wenn dieser betätigt wird, soll der Ausgang für eine genau
definierte Zeit geschlossen werden z.B. 100ms, egal wie lange der
Reedkontakt am Eingang geschlossen ist. Optimal wäre auch noch wenn die
Zeit eingestellt werden könnte von Betätigen des Reedkontakt bis zum
aktivieren des Ausgangs. Z.B. ich betätige den Reedkontakt am Eingang
dann soll eine Verzögerung von 20ms stattfinden bis der Ausgang dann für
100ms aktiv wird. Wahrscheinlich müsste der Eingang (Reedkontakt) entprellt werden.
Leider bin ich beim Schreiben eines Code nicht so fit. Aufbau bzw Programmieren des uC ist kein Problem.
Würde mich sehr freuen, wenn mir jemand beim erstellen eines Code behilflich sein könnte.
Vielen Dank
Gruß Markus
Re: Benötige Hilfe bei Programmierung mit BASCOM und ATtiny1
Hallo Markus!
Ein dazu passendes Programm könnte in etwa so aussehen (ungetestet):
Code:
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 24
$swstack = 10
$framesize = 24
Eingang Alias Pinb.0
Ausgang Alias Portb.1
'DEBOUNCE konfigurieren: Nach Erkennen einer Zustandsänderung am Eingang, wird
'nach 20 ms noch einmal geprüft ob der Zustand stabil geblieben ist.
Config Debounce = 20 '20 ms
Do
'Wenn der Eingang von LOW nach HIGH gezogen wird, dann wird das
'Label *Eingang_wurde_geschaltet* angesprungen.
Debounce Eingang , 1 , Eingang_wurde_geschaltet , Sub
Loop
End
Eingang_wurde_geschaltet:
'DEBOUNCE wartet bereits 20 ms um den Eingangszustand genau zu erkennen.
'Wenn zusätzlich noch etwas gewartet werden soll, dann kann man hier
'ein ``WAITMS`` unterbringen.
'Ausgang einschalten
Ausgang = 1
'100 ms warten
Waitms 100
'Ausgang ausschalten
Ausgang = 0
'Zur Hauptschleife zurückkehren
Return
Bei diesem Programm muss der Eingang mit einem Pulldown-Wiederstand (ca. 10 kOhm) nach GND gezogen werden, so dass ein stabiler Zustand garantiert werden kann. Der Reed-Schalter muss den Eingang nach VCC ziehen.
Würde man es umgekehrt machen, dann könnte man auf den externen Pulldown-Widerstand verzichten und den eingebauten Pullup-Widerstand aktivieren.
mfg
Gerold
:-)