Mikrocontroller programmieren innerhalb Zeit Bascom

OP #3202212
Lesenswert?

Hallo erst mal an Alle,

ich bin neu hier und habe vor kurzem das Hobby Elektronik für mich 
entdeckt, dazu gehören nun auch Mikrocontroller, da ich ein absoluter 
Anfänger bin, bitte ich um Hilfe.

Ich möchte einen Atmega8 so programmieren, dass sobald ein Taster, der 
an PD7 gegen GND geschaltet ist, gedrückt wird soll PD6 nach ca. 1 
Sekunde für 10 Sekunden eingeschaltet sein.

Wird innerhalb dieser Zeit der zweite Taster, der an PD6 gegen GND 
geschaltet ist betätigt, soll eine LED die an PB4 angeschlossen ist für 
1 Sekunde leuchten, wird der zweite Taster nicht betätigt, soll alles 
wieder in Ausgangsposition sein (Ist es möglich so zu programmieren, 
dass man einen möglichst niedrigen Stromverbrauch hat?).

Das ganze soll in Bascom programmiert werden.

Ich bin dankbar für jede Hilfe.
#3202218
Lesenswert?

Ich kann dir nicht konkret helfen, aber du solltest in etwa 
folgendermassen vorgehen: Entwickle mal soweit, wie du kommst. Schritt 
für Schritt: Zuerst Schaltung/Testboard/ISP, danach einfache Programme, 
um eine LED ein-/auszuschalten, dann die von dir erwähnte Logik. Sobald 
du irgendwo hängen bleibst, kommst du mit einer konkreten Frage und mit 
einer genauen Beschreibung des Problems hierher zurück.

Du fragst jetzt gewissermassen nach einer Komplettlösung, die wird dir 
kaum jemand bieten können. Und viele Leute hier werden nicht mal den 
Anstand haben, den Thread zu ignorieren, wenn sie nichts beitragen 
wollen, sondern werden dich mit sehr unfreundlichen Kommentaren 
eindecken.
OP #3202224
Lesenswert?

OK vielen Dank erst mal.

Ich habe schon einiges über Timer gefunden, allerdings leuchtet mir das 
nicht ganz ein.
LED einschalten, blinken lassen ist kein Problem, ich möchte nur wissen 
wie ich z.B. so einen Timer programmieren muss und wie dieser 
funktioniert.
Ich habe auch was von Watchdog gelesen, aber ich denke das ist nicht 
möglich oder?
Gast #3202258
Lesenswert?

Hi
Dein Vorhaben hat mit Watchdog nichts zu tun. Timer ist richtig. Ich 
kann dir zwar nicht in Bascom helfen, jedoch dir den Weg erklären. Die 
Sprache lasse ich mal außen vor. Ein Timer wird in einem festgelegten 
Intervall aufgerufen. Sagen wir, jede Sekunde. Dann wird ein Interrupt 
ausgelöst und in die Interrupr Service Routine verzweigt. Wenn da nichts 
steht, macht der Controller mit dem normalen Programm weiter. Du kannst 
nun in dieser ISR irgendwelche Zähler laufen lassen und beim erreichen 
eines vorgegebenen Wertes ein Unterprogramm aufrufen.
Der Vorteil eines Timers: dein Programm bleibt bedienbar. Programmierst 
du Wartezeiten, die nicht durch einen Timer generiert werden, beibt dein 
Programm in der Zeitschleife und macht nichts anderes wie warten. Wenn 
du dann auf Taster reagieren willst, musst du diese dann im Interrupt 
einlesen. Eine unschöne Sache. Besser ist es, einen Timer einzusetzen. 
Lies dich da mal schlau. Sicherlich findest du hier auch genügend 
Beispiele. Einfach mal die Suchfunktion bemühen.
 Gruß oldmax

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren