Mirko schrieb:
Gibt es hierzu vielleicht eine gute Quelle zum Nachschlagen oder
eventuell eine Library die ich einfach einbinden kann?
Da es viele verschiedene Möglichkeiten gibt, mehrere 7-Segment Anzeigen an einen uC anzuschliessen, und viele verschiedene uC, wird nur ein winzigkleiner Bruchteil aller Vorschläge bei dir passen.
Da du Microchip Studio 7 verwendest könntest du Assembler, bare C oder Arduino-style C++ verwenden für AVR und SAM uC. Assembler scheinst du nicht zu verstehen.
Da übliche uC nicht genug Anschlüsse haben um z.B. 6 7-Segment Anzeigen statisch anzusteuern und du keine Schieberegister als Porterweiterung nutzen mochtest, bleibt eigentlich nur Multiplexing als Ansteuermethode.
Da ein PortPin maximal 20mA liefert und Miltiplexing das auf alle Stellen verteilt, bei 4 also 5mA, bleibt die Frage wie viel Strom deine Displays brauchen um hell genug zu werden und ob du eventuell den Strom verstärken musst. Extra Transistoren sind ggf. mehr Aufwand als extra Schieberegister.
Der übliche Multiplex-Code nutzt einen Timer der z.B. 1000 Interrupt pro Sekunde auslöst, legt alle Segmente auf ein Port und nutzt Leitungen eines anderen Ports um die jeweils anzuzeigende Stelle zu selektieren.
Generischer code ist einfach:
1 |
#define STELLENANZAHL 4
|
2 |
char [STELLENANZAHL];
|
3 |
void timerinterrupt(void)
|
4 |
{
|
5 |
PORTD=0; alle aus
|
6 |
PORTB=segmente[stelle];
|
7 |
PORTD=1<<stelle;
|
8 |
stelle++;
|
9 |
if(stelle>=STELLENANZAHL) stelle=0;
|
10 |
}
|
mehr ist nicht nötig.