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


von Waldemar T. (bender007)


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!!!!

von Falk B. (falk)


Lesenswert?

Muss man wohl was programmieren . . . ;-)

von Stefan P. (form)


Lesenswert?

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

von Sebastian E. (senz) Benutzerseite


Lesenswert?

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

von Waldemar T. (bender007)


Lesenswert?

Und wie kann man diese Überprüfung realisieren?

von Waldemar T. (bender007)


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?

von Vlad T. (vlad_tepesch)


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.

von Waldemar T. (bender007)


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

von Icke ®. (49636b65)


Lesenswert?

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

von Waldemar T. (bender007)


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

von Icke ®. (49636b65)


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

von Falk B. (falk)


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.

1
meine_Timer_ISR_10ms{
2
3
static uint8_t tick;
4
5
tick++;
6
LED_1min = 0;
7
LED_1h=0;
8
9
if (tick==50) {
10
  LED_1s =0;
11
}
12
13
if (tick==100) {
14
  tick=0;
15
  sekunde++;
16
  LED_1s=1;
17
  if (sekunde==60) {
18
    sekunde=0;
19
    minute++;
20
    LED_1min=1;
21
    if (minute==60) {
22
      minute=0;
23
      stunde++;
24
      LED_1h=1;
25
      if (stunde==24) {
26
        stunde=0;
27
      }
28
    }
29
  }
30
}
31
    
32
}

MFG
Falk

von Waldemar T. (bender007)


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!

von Lehrmann M. (ubimbo)


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...

von Achim M. (minifloat)


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

von Oliver J. (skriptkiddy)


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

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.