Zeitschaltung

Microcontroller PIC und Atmel AVR

Microcontroller PIC und Atmel AVR

Moderator: Moderatorengruppe

Zeitschaltung

Neuer Beitragvon frankensteins-kumpel am Donnerstag 3. November 2011, 18:45

Heyy,

Ich Möchte eine Zeitschaltung in C schreiben. am besten auf einen tiny13. Folgende aspekte sollten erfüllt sein:

1: Beim drücken von einem taster geht eine Led an
2: die led sollte 2s lang leuchten
3: (Und das ist das, was ich nicht selber kann) wenn während der 2s der taster erneut gedrückt wird sollte der timer wieder neu beginnen, 2 s herunterzuzählen.

Gibt es da eine möglichkeit? jmnd hat mir mal gesagt, währen ein µC wartet, kann er keine signale auswerten.

MfG
Michael
frankensteins-kumpel
Threadstarter
44368
Junior Mitglied
 
Beiträge: 13
Registriert: Samstag 12. Juli 2008, 16:06

Re: Zeitschaltung

Neuer Beitragvon der mit den kurzen Armen am Donnerstag 3. November 2011, 19:12

Der µC wartet nicht er zählt einen Timer runter. Je nachdem wie Du Programmierst kann der bei einem erneutem Tastendruck den Timer auf Null setzen oder eben wieder Hoch oder auf eine andere Taste Überprüfen oder oder oder.
Eh du überhaupt anfängst in eine Hochsprache zu übersetzen mach erst mal einen Ablaufplan.
Der µC macht nichts weiter als stur sein Programm abzuarbeiten. Der Timer ist auch wie dein Tastendruck oder der Ausgang der die LED schaltet nur eine Variable die gesetzt und verändert werden kann.
Gruß Bernd
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst das von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!
der mit den kurzen Armen
44369
Moderator
 
Beiträge: 2073
Registriert: Samstag 19. Juni 2010, 19:33
Postleitzahl: 00000
Land: Germany / Deutschland

Re: Zeitschaltung

Neuer Beitragvon Jornbyte am Donnerstag 3. November 2011, 20:53

Der µC wartet nicht er zählt einen Timer runter.

Nöö, der tiny13 hat keine CTC, daher wird der Timer nach oben gezählt, bei Überlauf (0xff -> 0x00) wird gemeldet. Dies könnte ein Interrupt auslösen der wiederum die LED einschaltet.
Was macht das Hauptprogramm in der Zeit wo nix los ist? Es könnte den Taster in einer Endlosschleife abfragen und bei Druck auf den selben den Timerwert zurück stellen.
Am Anfang sollte der Timer seine In­i­ti­a­li­sie­rung erhalten, die Ports geseztz werden, Interrupt einschalten.
Was war das nun .... na das Programm :mrgreen:
mfg
Jornbyte
Jornbyte
44370
Silber Mitglied
 
Beiträge: 179
Registriert: Samstag 29. Juni 2002, 08:45
Wohnort: Hohenstein-Ernstthal
Postleitzahl: 09337
Land: Germany / Deutschland

Re: Zeitschaltung

Neuer Beitragvon BernhardS am Freitag 4. November 2011, 10:13

Hallo,

jmnd hat mir mal gesagt, währen ein µC wartet, kann er keine signale auswerten

Das bezieht sich auf bestimmte "Schlafbefehle", die man zum Batteriesparen setzen kann.

Grundsätzlich ist der Prozessor wesentlich schneller als Dein Finger. Ein Tastendruck wird normalerweise mit etwa 200 Millisekunden gerechnet, unter 100 wirst Du kaum hinbekommen. Der Prozessor ist ganz wesentlich schneller, sagen wir mal er kann die Taste 100000 mal pro Sekunde abfragen - nur so als Beispiel.
Dann sieht er in seinem Ablauf 20000 mal die Taste in gedrücktem Zustand. Da ist es doch sehr unwahrscheinlich, daß der Tastendruck übersehen wird.

Zurück zum Energiesparbefehl: Auch da gibt es dann Möglichkeiten, daß der Prozessor bei Tastendruck "aufwacht", also in den nromalen Betriebsmodus geht. Dafür braucht er auch nur Mikrosekunden - und er weiß ja, daß er wegen des Tastendrucks aufgewacht ist. Muss man halt im Programm entsprechend schreiben. Ich würde aber mit solchen Spezialitäten noch ein bißchen warten.

Bernhard
$2B OR NOT $2B = $FF
BernhardS
44373
Moderator
 
Beiträge: 3732
Registriert: Donnerstag 17. Februar 2005, 17:50
Postleitzahl: 84028
Land: Germany / Deutschland

Re: Zeitschaltung

Neuer Beitragvon anders am Freitag 4. November 2011, 12:59

jmnd hat mir mal gesagt, währen ein µC wartet, kann er keine signale auswerten

Das bezieht sich auf bestimmte "Schlafbefehle", die man zum Batteriesparen setzen kann.

Ausserdem gibt es durchaus Prozessoren, die auch im Schlaf ihre Eingänge überwachen und aufwachen, wenn sich dort ein Zustand ändert.
anders
44378
Moderator
 
Beiträge: 3953
Registriert: Freitag 28. Februar 2003, 13:46

Re: Zeitschaltung

Neuer Beitragvon frankensteins-kumpel am Mittwoch 9. November 2011, 16:19

Hey,

Es geht bei der schaltung eigendlich eher um eine art "sleep mode steuerung". ich habe eine schrittmotorsteuerung, die ich quasi "schlafen" lassen will, solange nach den 2s kein signal mehr von meinem PC habe. kommt ein signal, soll sie sofort aufwachen und ein "high" aussenden.
Nöö, der tiny13 hat keine CTC, daher wird der Timer nach oben gezählt, bei Überlauf (0xff -> 0x00) wird gemeldet. Dies könnte ein Interrupt auslösen der wiederum die LED einschaltet.
Was macht das Hauptprogramm in der Zeit wo nix los ist? Es könnte den Taster in einer Endlosschleife abfragen und bei Druck auf den selben den Timerwert zurück stellen.
Am Anfang sollte der Timer seine In­i­ti­a­li­sie­rung erhalten, die Ports geseztz werden, Interrupt einschalten.
Was war das nun .... na das Programm :mrgreen:


--> damit kann ich villeicht was anfangen. bin noch ein ziemlicher anfänger. daher muss ich das ganze erstmal noch im kopf durchgehen

MfG
Michael
frankensteins-kumpel
Threadstarter
44458
Junior Mitglied
 
Beiträge: 13
Registriert: Samstag 12. Juli 2008, 16:06


Zurück zu Atmel AVR Pic und C Control

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast