www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik eine Uhr programmiert-LEDs blinken lassen


Autor: Waldemar T. (bender007)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe folgendes Problemm. Vieleicht hat jemand ein Tipp für mich wie 
ich das realisieren kann, was ich mir ausgedacht habe.
Also folgendes, ich habe ein Uhr mit Hilfe Atmega 32 programmiert. Die 
Zeitzählung wurde mit einem Timmer realisiert. Die Sekunden-, Minuten-, 
und Stundenwerte werden in Integern gespeichert. Jetzt möchte ich das 
mein 3 LEDs die Sekunden blinkend anzeigen, die 2. Led Minuten blinkend 
anzeigt und die 3. LED die Stunde blinkend anzeigt. Und das muss so 
aussehen LED-Sekunde blinkt jede Sekunde, LED-Minute blinkt jede Minute 
u-s.w.

Hat jemand Tipp wie das im Programm realisieren kann?
Danke!!!!

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss man wohl was programmieren . . . ;-)

Autor: Stefan P. (form)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brücke C3 und verbinde GND mit Pin 17 eines gerade nicht lieferbaren 
Controllers.

Autor: Sebastian Enz (senz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Teste die 3 Werte auf gerade und ungerade und schalte die LED's 
etsprechend ein oder aus.

Autor: Waldemar T. (bender007)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie kann man diese Überprüfung realisieren?

Autor: Waldemar T. (bender007)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sebastian Enz schrieb:
> Teste die 3 Werte auf gerade und ungerade und schalte die LED's
> etsprechend ein oder aus.

Wie kann man das realisieren?

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kapier nicht, was er will.

die sekunden-LED soll im Sekundentakt blinken.
2Hz, oder 1Hz?

die Minute-LED soll wie blinken?
die Stunden-Led soll wie blinken?

Sebastian Enz schrieb:
> Teste die 3 Werte auf gerade und ungerade und schalte die LED's
> etsprechend ein oder aus.

das würde ja heißen, man kann die Stunden nur alle 2 Stunden ablesen, da 
bei geraden Stunden die LEDs ja aus sind.

Autor: Waldemar T. (bender007)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vlad Tepesch schrieb:
> ich kapier nicht, was er will.
>
> die sekunden-LED soll im Sekundentakt blinken.
> 2Hz, oder 1Hz?
>
> die Minute-LED soll wie blinken?
> die Stunden-Led soll wie blinken?
>
> Sebastian Enz schrieb:
>> Teste die 3 Werte auf gerade und ungerade und schalte die LED's
>> etsprechend ein oder aus.
>
> das würde ja heißen, man kann die Stunden nur alle 2 Stunden ablesen, da
> bei geraden Stunden die LEDs ja aus sind.

Also die Minuten-LED und Stunden LED sollen auchn Sekundentakt blinken

Autor: Icke ®. (49636b65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man schon eine Uhr programmiert hat, dann sind so Blinkerchen doch 
ein Klacks...

Autor: Waldemar T. (bender007)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Icke ®. schrieb:
> Wenn man schon eine Uhr programmiert hat, dann sind so Blinkerchen doch
> ein Klacks...

Aber ich komme nicht dazu, ich irgendwelchen Ansatz

Autor: Icke ®. (49636b65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast die Uhr gar nicht selbst programmiert, sondern irgendwo 
abgeschrieben, gelle? Sonst würdest du wohl nicht an ein paar simplen 
Blinklichtern scheitern. Auf dieser Webseite gibt es ein hervorragendes 
Tutorial zum Thema µC

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Waldemar T. (bender007)

>Also die Minuten-LED und Stunden LED sollen auchn Sekundentakt blinken

Du meinst sie sollen für jeweils 1s leutchten. Das ist was anderes ;-)

Ist aber einfach. Wenn in deinem Programm die Minuten um eins erhöht 
werden, schaltest du die LED für die Minuten an. Im nächsten Durchlauf 
werden sie wieder ausgeschaltet. Das Gleiche für die Stunden. Die 
Sekunden werden ähnlich bearbeitet, nur dass dort entweder die LED nur 
1/2 Sekunde leuchtet oder im 1s Takt blinkt. Etwa so.


meine_Timer_ISR_10ms{

static uint8_t tick;

tick++;
LED_1min = 0;
LED_1h=0;

if (tick==50) {
  LED_1s =0;
}

if (tick==100) {
  tick=0;
  sekunde++;
  LED_1s=1;
  if (sekunde==60) {
    sekunde=0;
    minute++;
    LED_1min=1;
    if (minute==60) {
      minute=0;
      stunde++;
      LED_1h=1;
      if (stunde==24) {
        stunde=0;
      }
    }
  }
}
    
}

MFG
Falk

Autor: Waldemar T. (bender007)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Icke ®. schrieb:
> Du hast die Uhr gar nicht selbst programmiert, sondern irgendwo
> abgeschrieben, gelle? Sonst würdest du wohl nicht an ein paar simplen
> Blinklichtern scheitern. Auf dieser Webseite gibt es ein hervorragendes
> Tutorial zum Thema µC

Natürlich, um eine LED blinken zu lassen, muss man nicht Informatik 
studieren. Aber es geschieht über ein Timmer und alles muss 
synchronisiert sein. Deswegen möchte ich das so programmieren das es 
genau ist, deswegen habe ich das über Timmer gemacht.

Ich habe jetzt die Lösung: ich habe das über Modulo realisiert. Es 
vergleicht ob die Sekunden gerade Zahlen oder ungeraden Zahlen sind. 
Somit kann man das blinken lassen!

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Waldemar T. schrieb:
> Natürlich, um eine LED blinken zu lassen, muss man nicht Informatik
> studieren. Aber es geschieht über ein Timmer und alles muss
> synchronisiert sein. Deswegen möchte ich das so programmieren das es
> genau ist, deswegen habe ich das über Timmer gemacht.

Zum Thema Uhr: Wie sieht's denn mit deiner Taktversorgung aus ? Hoffe du 
verwendest einen Uhrenquarz ansonsten geht deine Uhr nach nem Tag zu 
viele !Minuten! nach...

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Waldemar T. schrieb:
> Ich habe jetzt die Lösung: ich habe das über Modulo realisiert. Es
> vergleicht ob die Sekunden gerade Zahlen oder ungeraden Zahlen sind.

Die Zählvariable mit 0x01 ver-&-en reicht auch schon zur Überprüfung aus 
und ist sicher als hexcode schlanker.
Wenn das niederwertigste Bit gesetzt ist, muss die Zahl wohl ungerade 
sein.

mfg mf

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joachim K. schrieb:
> Die Zählvariable mit 0x01 ver-&-en reicht auch schon zur Überprüfung aus
> und ist sicher als hexcode schlanker.
Teste mal beide Varianten (&1 / %2) im AVRGCC. Der Compiler erzeugt in 
beiden Fällen ein "andi  REGISTER_LOW_BYTE, 0x01", sodass es egal ist, 
was man man benutzt.

Gruß
skriptkiddy

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.