Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller programmieren innerhalb Zeit Bascom


von Daniel M. (daniel_m76)


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.

von P. M. (o-o)


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.

von Daniel M. (daniel_m76)


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?

von oldmax (Gast)


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

von Daniel M. (daniel_m76)


Lesenswert?

Vielen Dank bis hierher mal, das hat mir schon sehr weitergeholfen, ich 
weiß nun, das ich sicher einen Timer nehmen muss, und werde mich darüber 
etwas schlauer machen.

Ich hoffe auf weitere Hilfe, falls ich wieder Probleme habe :)

Freundliche Grüße an Alle

von mcs (Gast)


Lesenswert?

steht auch alles in der bascom hilfe !!!

von Willi L. (wilials)


Lesenswert?

hier bekommst Du beste Hilfe, aber Du kannst auch mal über den Zaun 
blicken:

bascom-forum.de

Vielleicht findest Du dort die passenden Codeschnipsel in Bascom.

Gruß
wilials

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.