mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taster als Schalter


Autor: usel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich brächte mal einen kleinen denkanstoß.
Ich möchte gerne mit einem Taser eine LED zum leuchten bringen.
Die LED soll solange leuchten bis ich den selben taster nochmal
drücke.

Danke

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bau dir ein bistalbiles flipflop auf oder kauf dir ein fertiges, vergiss
nicht, den taster noch zu entprellen

Autor: usel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ops, hab vergessen zu sagen das ich mit Bascom arbeite und den AT90S2313
habe.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann such dir irgendwo ein paar bascom tutorials raus. einen port
abfragen und setzten sollte man sich doch noch selber erarbeiten können

Autor: usel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich ja, finde da blos nicht das richtige.


$regfile = "2313def.dat"
'AT90S2313
$crystal = "3686400"                                        'Quarz
3.6864 MHz

Ddrd = &B0000011                                            'Pin PD0
und PD1 als Ausgang
Portd = &B0000100                                           'PullUp
von PD3 Aktivieren

Do
   If Pind.3 = 0 Then                                       'wenn PD3
gedrückt dann...
      Portd.0 = 1                                           '...PD0
an
      Portd.1 = 1                                           '...PD1
an
   Else                                                     'Wenn PD3
nicht gedrückt dann...
      Portd.0 = 0                                           '...PD0
aus
      Portd.1 = 0                                           '...PD1
aus
   End If

Loop
End

Wenn ichs so mache gehen doch sobald ich den Taster loslasse die LEDs
aus oder nicht?

Autor: Garfild (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Au mann.... Ich hab in meinem leben noch nie was mit bascom gamacht!
Aber trotzdem isses leicht:

$regfile = "2313def.dat"
'AT90S2313
$crystal = "3686400"                                        'Quarz
3.6864 MHz

Ddrd = &B0000011                                            'Pin PD0
und PD1 als Ausgang
Portd = &B0000100                                           'PullUp
von PD3 Aktivieren
Portd.0 = 0                                           '...PD0
aus
Portd.1 = 0                                           '...PD1
aus
Do
   If Pind.3 = 0 Then                                       'wenn PD3
gedrückt dann...
      Portd.0 = 1                                           '...PD0
an
      Portd.1 = 1                                           '...PD1
an
   End If
Loop
End

Autor: usel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mag ja sein das es für dich leicht ist, ich finde das alles ziemlich
schwer.

Und verstehen tu ich das was du da gepostet hast auch nicht wirklich.
Kanns leider erst morgen testen, weil mein experimentier board noch
nicht da ist.

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich mach auch nix mit BASCOM, meine aber, dass es so nicht funktioniert,
denn ich vermisse das "Zauberwort" zum Entprellen der Taste(n). Da du
(@Usel) ja mit BASCOM "arbeitest", wirst du das auch leicht in der
BASCOM-Hilfe finden.

...

Autor: usel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe prellfreie taster!

Was mich an dem von Garfield geschriebenem code nur etwas verwundert,
ist das wieder ausschalten der LEDs.
Das sie bei Tastendruck angehen ist ja ganz logisch, blos wo steht denn
da das sie bei erneutem tastendruck wieder ausgehen?

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast also prellfreie Taster. Ich nicht, denn alle mechanischen Taster
prellen.

Du fragst den (prellfreien) Taster in einer Schleife ab. Du bist auch
in der Lage, den Taster exakt so lange zu drücken, dass er nur in einem
Schleifendurchlauf gedrückt ist, im nächsten dann nicht mehr.

Dann ist das ganz einfach: zähle bei jedem Tastendruck eine Variable
hoch und werte deren unterstes Bit als Schaltzustand aus. Oder toggle
bei jedem Tastendruck den Ausgang.

Du bist nicht in der Lage, den Taster exakt genug zu betätigen??

Dann brauchst du eine gute Tastenentprellung, die jeden Tastendruck
(egal wie lange er dauert) und jedes Loslassen registriert und dir
eindeutige Flags für Tastenzustand und neuen Tastendruck liefert. Auch
für den Fall, dass du wirklich entprellte Tasten hast (kontaktlose
Tasten mit Triggerverhalten, z.B. Hall-Tasten mit eigener Elektronik).

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.