Hallo Leute, ich melde mich nochmal heute, bloß jetzt geht es um eine Siebensegmentanzeige, die ich in mein Projekt miteinbinden will. Kurze Erläuterung zur Arbeitsweise der Siebensegmentanzeige: Die Siebensegmentanzeige wird über ein Multiplexverfahren angesteuert. Die Leitungen PC[3...0] sind an einem Multiplexer angeschlossen, von dem wiederrum jeweils eine Leitung zu einer LED-Matrix führt. Diese Leitung ist mit der Anode der 7Segementanzeige verbunden. Ist Input auf high, dann schaltet der Ausgangstransistor durch und die Stellen sind somit aktiv. Wenn jetzt zusätlich einer der Portleitungen PD[7...0] auf low sind, dann fließt Strom und somit ist das jeweilige Digit an. Ich habe folgenden Codeausschnitt dazu: void LED_mux (void) { static unsigned char digit = 0; // Speicher für aktuelle Ziffer PORTD = 0x0FF; // Segmente aus PORTC = (PORTC&0xF0)| (1<<digit); // nächste Ziffer aktivieren PORTD = segmenttab[ziffernspeicher[digit]]; // Segmente setzen digit++; // für nächste Stelle digit = digit & 0x03; // ???????????????????????? } was macht die Zeile mit den vielen ??????????????? Grüsse
Gast
#2507050
Die ???????????? Zeile begrenzt den Wertebereich für digit auf die Werte 0,1,2,3 Bitmanipulation
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.