Forum: Mikrocontroller und Digitale Elektronik MULTIPLEXEN IN C


von Josef (Gast)


Lesenswert?

Guten Abend!

Suche verzweifelt nach einem "Tutorial" über das Multiplexen in C.
Benötige das für 7 Segment Anzeigen.

Würde mich über Links und dergleichen freuen!

Danke im vorhinein!

von Sean G. (atmega318)


Lesenswert?

Ich schreib einfach mal kurz wie ich es machen würde, kann natürlich 
noch Fehler enthalten.
1
volatile uint8_t buffer[6]; // 6 stellen
2
volatile uint8_t step;   //step ist der schritt (0-5) des Multiplex
3
4
void set_digit() 
5
{
6
     PORTx = 0;
7
     PORTy = 0;
8
     PORTy = 1 << step;
9
     switch(data)
10
     case 0:       PORTx = 0b10101010     break;
11
     case 1:       PORTx = 0b00011101     break;
12
     case 2:       PORTx = 0b10111101     break; //hier müssen jeweils die Zahlen rein, wie sie am port angeschlossen sind
13
     .
14
     .
15
     .
16
}
17
18
ISR()
19
{
20
     step ++;
21
     if(step == 6)
22
     {
23
           step = 0;
24
     }
25
     set_digit();
26
}

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?


von Michael (Gast)


Lesenswert?

Josef schrieb:
> Würde mich über Links und dergleichen freuen!

Den Beitrag kennst du?
Beitrag "Re: Zehn 7Segmente im Multiplexbetrieb : Hilfe !"

von 132 (Gast)


Lesenswert?

m.n. schrieb:
> http://www.mino-elektronik.de/7-Segment-Variationen/LCD.htm#led4
> Ohne Multiplexen geht es auch.

Das ist gemultiplext !

 ... und noch dazu einer der größten Mukrsschaltungen die ich je gesehen 
habe

von Falk B. (falk)


Lesenswert?

@ 132 (Gast)

>> http://www.mino-elektronik.de/7-Segment-Variatione...
>> Ohne Multiplexen geht es auch.

>Das ist gemultiplext !

Ja.

> ... und noch dazu einer der größten Mukrsschaltungen die ich je gesehen
>habe

Warum? Die Schaltung ist voll OK. T1-T4 arbeiten als Emitterfolger. Kein 
Basiswiderstand nötig. Ungewöhlich, aber OK.

von Wolfgang (Gast)


Lesenswert?

Josef schrieb:
> Würde mich über Links und dergleichen freuen!
Die Arduino Aufrufe von digitalWrite() kannst du durch einfache 
Portausgaben ersetzen. Und eigentlich würde man das ganze besser über 
einen Timerinterrupt steuern. Aber fürs Prinzip sollte das reichen:
https://www.inkling.com/read/arduino-cookbook-michael-margolis-2nd/chapter-7/recipe-7-7

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.