Gast
#2513620
Hallo zusammen, ich habe mir nach diversen Lauflichten, LED-Ansteuerungen und auch einer PWM nun einen kleinen 3x3x3 LED Cube gebastelt, den ich mit einem ATMega8 ansteuern möchte. Ich arbeite mit AVR Studio 5 (C/C++). Nun habe ich die einzelnen LEDs (jede nacheinander für sich) angesteuert, was auch klappt. Jetzt will ich natütlich eine Animation erstellen und dazu muß man nun multiplexen. Ich habe z.B. das Problem das wenn ich LED1 und LED11 ansteuern will leuchten LED2 und LED 10 auch mit, warum ist mir auch klar. Ich muß nun LED1 und LED 11 ganz schnell ein und aus schalten das es so aussieht als würde LED1 und LED11 permanent leuchten. Ich habe nun erstmal die Ausgänge zum schalten der LED1, LED2, .... definiert. #define l1on PORTD &= ~_BV(PD0) /*links vorne*/ ; PORTB &= ~_BV(PB1) /*1. Ebene*/ #define l1off PORTD |=_BV(PD0) /*links vorne*/ ; PORTB |=_BV(PB1) /*1. Ebene*/ ... ... Dann habe ich die Schaltfrequenz wie folgt realisiert. #define l1 l1on;_delay_ms(0.25);l1off; #define l2 l2on;_delay_ms(0.25);l2off; ... ... Jetzt kann ich mit l1 & l2 LED1 und LED11 schalten ohne das LED2 und LED10 mitangehen. Allerdings ist das bestimmt sehr aufwendig und der eine oder andere Programmierer wird die Hände über dem Kopf zusammenschlagen :-) Ich habe mir auch schon einige Dinge durchgelesen und mir ist die Matrix und das multiplexen ansich klar, nur verstehe ich die Umsetzung ins programmieren nicht so ganz. Ich versuche gerade eine dreidimensionales Array aufzubauen und ihn damit anzusprechen. Vielleicht hat der ein oder andere einen Tipp oder einen nützlichen Link auf dem ich noch nicht war. Gruß
