AVR
LEDDISPLAY , Ein
PingPong Spiel von Conrad, mit einem ATMEga 8 Controller.
damals ~10€
Einfach suchen nach "Retro
Ping Pong" Da
kann man selbst Software schreiben und aufspielen !! Nur ein ISP
Stecker muss
aufgelötet werden Missbraucht
als Kostengünsteiges LED Array , z.B für ein Software Oszilloscope HARDWARE
8TMega8, Shift register CD4094, 10x10 LEDs, ISP Port
Files 4094.c
Shift Register Baustein
.c Ansteuerung 12DatenBit
anlegen, Aufrufen,
Dazu die passende Anodenleitung mit Pin +5V aufschalten.
Fertig 4094.h
Shift Register Baustein .h
Definitionen Retroboard.zip
Alle WINAVR Files im Zip um mal grundlegend mit
dem Retroboard zu arbeiten ( ist nur ein Softwarebeispiel )
Projekt Fraktalgenerator: C_Ermer_FRAKTAL_RetroBoard-PingPong.zip
Hier das PingPong, Modul zu beziehen vom Conrad. Für nur 7€ !!!
Darin werkelt ein AVR ATMega 8 im SO Gehäuse
Programmiert wird er über ien 2x3 ISP Stecker, den man aber erst noch
einlöten muss ( von unten ! , und Einbau-Drehrichtung beachten )
Damit kann man selbst z.B. allerle Proggrammieren, z.B. einen Oszillografen
programmieren.
Als Projektidee, Oder eine Uhr. Uhrenquarz
dran. Fuse Bits richtig setzen, fertig- Die LEDsKathoden werden über
ein Shift Register( CMOS 4094 )
angesteuert ..
Schaltplan klein:
Gut aufgelöster Schaltplan:
Beispiel Software AUSZUG
noch unfertig: Fahrrad Blinker mit IR Fernbedienung
///GLOBAL VAR
//SU_SHIFT_CMOS4094_TYPE gSU_CMOS4094; //Struct Union#
// Folge Write one Position on X Position !
// *******************************************************************
void Write_OUT4094( uint16_t u16Val, uint8_t u8BitCnt ) //
WERT, ShitBits
// *******************************************************************
{
u8BitCnt--;
//CMOS4094_INITDIRREG(); //NICHT Vergessen dass im main.c
zu machen
//CMOS4094_STROBE_LOW();
//CMOS4094_CLK_LOW();
//__asm__ __volatile__( "rjmp 1f\n 1:" ); // 2 cycles
//_delay_us(1);
do
{ // Clock out bits from the eo array
if( u16Val & (1U << u8BitCnt )
) // Ist es undiert eine EINS ?
{
CMOS4094_DATA_HIGH();
}
else
{
CMOS4094_DATA_LOW();
};
TWO_CLK_CYCLES(); // 2 cycles
//_delay_us(1);
CMOS4094_CLK_HIGH(); //Shift clock
TWO_CLK_CYCLES();
//_delay_us(1);
CMOS4094_CLK_LOW();
}while( u8BitCnt-- );
TWO_CLK_CYCLES();
//_delay_us(1);
CMOS4094_STROBE_HIGH();
TWO_CLK_CYCLES();
//_delay_us(1);
CMOS4094_STROBE_LOW();
};