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:
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;
}
Diesen Code hat radbruch geschrieben. Den Code gibts bei Bedarf auch noch in Bascom Basic einfach nochmal fragen.
Für das RN-Control müssen nur die Pindefinitionen angepasst werden.
MfG
Torrentula
Lesezeichen