Binäruhr Programmierung

Gast #4548775
Lesenswert?
• ▲
▼
Ich habe ein kleines Projekt am laufen in welchem ich eine Binär-uhr 
programmieren möchte.

Die anzeige ist so aufgebaut

  h10   h1   min10  min1  sec10 sec1
   x    x      x      x     x     x
   x    x      x      x     x     x
        x      x      x     x     x
        x             x           x

x ist eine Lampe.

jeweils eine Zeile stellt auf dem Mikrocontroller ein Ausgang dar.
die sechs Anzeigen sind über Transistoren getrennt. alle 2.5 ms wechseln 
die Transistoren. nun habe ich das Programm mit Switch-Case geschrieben 
und jeder einzelne Wert einzeln eingegeben.
z.B:
switch (sec1)
{
...
case 12:
RA0 = 0;
RA1 = 1;
RA2 = 0;
RA3 = 0;
...
}

ich würde darum gerne fragen wie ich diese "Wahrheitstabelle" berechnen 
kann, dass das Programm nicht so lang und unübersichtlich ist.
#4548898
Lesenswert?
• ▲
▼
Severin Senn schrieb:
> Ich habe ein kleines Projekt am laufen in welchem ich eine Binär-uhr
> programmieren möchte.
>
> Die anzeige ist so aufgebaut
>
>   h10   h1   min10  min1  sec10 sec1
>    x    x      x      x     x     x
>    x    x      x      x     x     x
>         x      x      x     x     x
>         x             x           x

Wenn du Zehner und Einer durch getrennte LED-Gruppen darstellst, dann 
ist das streng genommen keine Binäruhr, sondern eine BCD-Uhr.

> ich würde darum gerne fragen wie ich diese "Wahrheitstabelle" berechnen
> kann, dass das Programm nicht so lang und unübersichtlich ist.

Wenn du jede Zahl wie von Peter gezeigt in Zehner und Einer zerlegst, 
dann sind das jeweils maximal 4 Bit. Und die Bits geben direkt an, 
welche LED für die jeweilige Stelle eingeschaltet werden müssen.

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