Archiv verlassen und diese Seite im Standarddesign anzeigen : Tasterbetätigung
Guten Tag,
vorweg, ich bin ein totaler neueinsteiger in Sachen AVR-Programmierung, ich habe mir das AVR-Avaluationboard bei Pollin bestellt, nun habe ich bereits die 2 LED's zum abwechselnden blinken gebracht und das die LED's leuchten solange der Taster betätigt wird (alles noch auf dem Simulationsboard), ich habe das mit einer "if-funktion" realisiert, nun meine Frage, wie kann ich dort eine Art Selbsthaltung einbauen, sodass wenn ich den Taster einmal betätige die LED's anbleiben und sobald ich ihn nocheinmal drücke wieder ausgehen? Programmieren tue ich mit Bascom!
Danke im vorraus :)
MfG yoyoba
Sieh dir in der Bascom-Hilfe mal den Befehl "Toggle" an.
Hilft das?
Gruß Dirk
mh, dort sehe ich nur, dass es diesen Befehl gibt aber wie bzw wo ich ihn einsetze, darüber kann ich nichts finden :(
MfG yoyoba
In der Form
Toggle LED ändert den wert von 0 auf 1 bzw umgekehrt.
... dort sehe ich nur, dass es diesen Befehl gibt aber wie bzw wo ich ihn einsetze, darüber kann ich nichts finden
Wie bei (fast) jedem Bascom-Befehl auch, ist bei "Toggle" ein kurzes Beispielprogramm angegeben.
Gruß Dirk
also bei mir siehts so aus und es funktioniert immernoch nicht, die led geht beim loslassen des Tasters sofort wieder aus, wobei sie doch anbleiben soll bis der Taster erneut gedrückt wird :(
$regfile = "m8def.dat"
$crystal = 12000000
Config Pinb.1 = Input
Config Portd.5 = Output
Config Portd.6 = Output
Do
If Pinb.1 = 1 Then
Toggle Portd.5
End If
Loop
die led geht beim loslassen des Tasters sofort wieder aus
Das könnte am Prellen des Tasters liegen.
Sieh dir in der Bascom-Hilfe mal den Befehl "Debounce" an.
Gruß Dirk
wo denn da? :( wenn ich die suchfunktion von firefox benutze und debounce eingebe sehe ich nur, dass es die funktion gibt, wie ich sie anwende oder sonstiges, finde ich nicht, wo steht denn das ? :(
mfg
wo steht denn das ?
Bascom-IDE:
Help -> Index -> BASCOM Language Reference
die led geht beim loslassen des Tasters sofort wieder aus
Das könnte am Prellen des Tasters liegen.
Sieh dir in der Bascom-Hilfe mal den Befehl "Debounce" an.
Gruß Dirk
Sein µC braucht etwa 1,5µs (!) für einen Schleifen Durchlauf.
Ob mit oder ohne Prellen wird der wohl ein paar mal togglen, bevor er loslässt.
Gruß
Rolf
stefan_Z
20.04.2009, 01:00
Also du solltest dir einige Dinge mal ansehen/durchlesen:
1 - Bascom-Hilfe (Das Fragezeichen im Programm oder online beim Hersteller) Ist englisch, aber da musst du durch!
2 - Ein paar einfache Beispielprogramme hier in der Roboternetz-Codesammlung.
3 - Das Beispiel von der Pollin-Homepage: http://www.pollin.de/shop/downloads/D810038S.ZIP
Da werden alle wichtigen Funktionen benutzt und erklärt. Benutzt wird ein Mega16, aber das kann man auch für andere µC umschreiben.
kannst auch ein einfach ein waitms einbauen.. z.b. waitms 100
dann wird der Zustand des Tasters nicht sooft abgefragt.
omega1951
20.04.2009, 13:19
Hallo alle miteinander,ich hätte auch noch einen Lösungsvorschlag,der
bei mir wunderbar funktioniert.
[$regfile = "m8def.dat"
$framesize = 52
$swstack = 62
$hwstack = 72
$crystal = 8000000
Config Portc.0 = Output
Config Pinb.0 = Input
Portb.0 = 1
Declare Sub Taste1
Do
Debounce Pinb.0 , 1 , Taste1 , Sub 'Tastenentprellen
Loop
Sub Taste1
Portc.0 = Not Portc.0 'geht auch mit mehreren Ports
End Sub]
woher weiß das programm, dass taster1=pinb.0 ist?
könntet ihr mir bitte einmal die Zeile "Debounce Pinb.0 , 1 , Taste1 , Sub" genauer erklären?
mfg
omega1951
23.04.2009, 15:13
Hallo yoyoba
über den Befehl config Pinb.0 = Input weiß das Programm wo der Taster
angeschlossen ist. Debounce ist der Befehl zum Tastenentprellen
an Pinb.0 (oder an jedem anderen Port) ist der Taster angeschlossen
,1 oder ,0 sagt aus ob der Taster mit High oder Low betätigt wird.
Taste1,Sub gibt an in welche Subroutine gesprungen wird.
Gruss Dieter
danke, aber das programm hat nirgens einprogrammiert das es taster1 ist, könnte ich in die zeile jeden beliebigen namen für taster1 einsetzen? dann würde für mich diese stelle keinen sinn ergeben und man könnte sie weglassen....
omega1951
23.04.2009, 17:59
Hallo yoyoba,
du kannst in der Zeile jeden beliebigen Namen nehmen du musst nur
den Namen in der Subroutine wieder verwenden.
Gruss Dieter
python_rocks
23.04.2009, 22:41
wenn ich den Taster einmal betätige die LED's anbleiben und sobald ich ihn nocheinmal drücke wieder ausgehen
Hallo yoyoba!
Vielleicht kannst du mit dieser Erklärung etwas anfangen:
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/taster_entprellen/
Noch besser wäre es, wenn du von vorne beginnst:
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/
mfg
Gerold
:-)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.