Mal ein Schaltplan wie das aussieht, wenn man denn multiplexing verwenden will: http://www.ledstyles.de/index.php?pa...1838b113fe8373
Der Code kann so aussehen:
Diesen Code hat radbruch geschrieben. Den Code gibts bei Bedarf auch noch in Bascom Basic einfach nochmal fragen.Code:#include <stdlib.h> #include <avr/io.h> // #include "def.h" // #include "muster.txt" unsigned char muster[4][6]= // muster[Bildnummer][Bildmuster] { { 0b01000000, 0b00000000, // Bild 1 0b00100000, 0b00000000, 0b00010001, 0b11111111 }, { 0b01000000, 0b00000000, // Bild 2 0b00100001, 0b11111111, 0b00010000, 0b00000000 }, { 0b01000001, 0b11111111, // Bild 3 0b00100000, 0b00000000, 0b00010000, 0b00000000 }, //... { 0b01000000, 0b00000000, // Bild 10 0b00100000, 0b01010100, 0b00010000, 0b00000000 } }; int main(void) { int bildnr; int ebene; int dauer_bild; int dauer_ebene; //Pins bzw. Ports als Ausgänge konfigurieren DDRB = 0xFF; // 0b11111111 --> Alle Pins an Port B als Ausgänge DDRD = 0b01110001; // 0b01110001 --> Benutzte Pins an Port D als Ausgänge while(1) { for ( bildnr = 0; bildnr < 4; bildnr++ ) { for ( dauer_bild = 0; dauer_bild < 10000; dauer_bild++ ) // geschätzt { for (ebene = 0; ebene < 3; ebene++) { for(dauer_ebene = 0; dauer_ebene < 50; dauer_ebene++) // geschätzt { PORTD = muster[bildnr][ebene*2]; // Ebene und LED Säule 1 ausgeben PORTB = muster[bildnr][ebene*2+1]; // LEDs Säule 2 bis 9 ausgeben } PORTD=0; // Ebene und LEDs aus PORTB=0; } } } } return 0; }
Für das RN-Control müssen nur die Pindefinitionen angepasst werden.
MfG
Torrentula







Zitieren

Lesezeichen