Forum: Mikrocontroller und Digitale Elektronik Atmega 8 wie schalter auf pegel halten


von Thomas St. (Gast)


Lesenswert?

Hallo,

Ich arbeite derzeit an einem projekt und wíll wenn ich eine tasteter am 
PB0 drücke das sich der pegel High hält bis ich den taster wieder 
betätige.Will das gerne software mäsig machen

Danke im vorraus

von Otto (Gast)


Lesenswert?

Hallo Thomas,

was möchtest Du genau - doch nicht, dass der Pegel am Schalter auf "1" 
bleibt - oder ?

Otto

von Thomas St. (Gast)


Lesenswert?

also ich betätige den taster an PB0 dann soll der Atmega am ausgang PC0 
auf High schalten und erst wenn ich den taster am PB0 wieder betätige 
soll der pegel am PC0 wieder auf Low gehn

von STK500-Besitzer (Gast)


Lesenswert?

1. aktuellen Tasterzustand abfragen (Entprellen nicht vergessen).
2. wurde der Taster gedrückt, Zustand des PC0 ändern.
3. warten, solange der Taster gedrückt wurde
4. Zurück zu 1.

Da keine Angaben zur Programmiersprache gemacht wurden, sollte das 
reichen...

von Otto (Gast)


Lesenswert?

Taster mit "pinb" abfragen und merken und abhängig vom gemerkten 
Ergebnis Portpin c setzen oder löschen

Otto

von STK500-Besitzer (Gast)


Lesenswert?

>abhängig vom gemerkten Ergebnis Portpin c setzen oder löschen

Kann man per EXOR machen...

von ... (Gast)


Lesenswert?

Oder ne Drahtbruecke... duck

von Thomas St. (Gast)


Lesenswert?

ich schreibe in Basic

regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000

Config Portc.0 = Output        'Ein Pin wird als Ausgang konfiguriert 
PC0
Config Pind.0 = Input          'Ein Pin (PA0) wird als Eingang definier
Porta.7 = 1                    'Interner Pullup Widerstand ein


Do
  If Pina.0 = 1 Then

Was dann

von Vorschlag (Gast)


Lesenswert?

Do
Debounce Pina.0 , 0 , Tgl , Sub
Loop

Tgl:
Toggle Portc.0
Return

von Thomas S. (Firma: RF-I) (rasieel)


Lesenswert?

ich will jetzt damit aber mehrere  ausgäne so schalten wie muss ich das 
dann machen

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Du toggelst den Port einfach jedes mal, wenn der Taster gedrueckt wird. 
Das kannst Du, indem Du den Portpin mit dem aktuellen Zustand 
verexklusivoderst. Ob ein Bit oder einen ganzen Port spielt dabei keine 
Rolle, das sind Bit-Operationen.

Michael

von Thomas S. (Firma: RF-I) (rasieel)


Lesenswert?

hast du ein beispiel code

von Karl H. (kbuchegg)


Lesenswert?

Thomas St wrote:
> ich will jetzt damit aber mehrere  ausgäne so schalten wie muss ich das
> dann machen

Dann geh ich mal davon aus, dass der Vorschlag funktioniert hat.

> hast du ein beispiel code

Das ist jetzt aber nicht dein Ernst, oder?


Do
Debounce Pina.0 , 0 , Tgl , Sub
Loop

Tgl:
Toggle Portc.0
Toggle Portc.1
Return


Natürlich muss auch PC1 auf Ausgang geschaltet sein.

Schau dir doch bitte die benutzten Befehle in der BASCOM
Hilfe an.

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
Noch kein Account? Hier anmelden.