Gast
#1708845
Anbei erstmal mein Quelltext den ich bisher erstellt habe mit dem myAVR
Workpad Plus in Verbindung mit dem myAVRMK2 Board .
Daran angeschlossen haben ich eine Tastaturmatrix :
Betrieben wird das ganze mit einem ATMega8 .
main () // Hauptprogramm, startet bei Power ON und Reset
{
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
DDRC = 0xFF;
while (true)
{
switch(PINB & 0b111100)
{
case 0b111000 :
DDRD = 0b00000000;
PORTD = 0b10000000;
DDRB = 0b111100;
PORTB = 0b000011;
switch(PINB & 0b000011)
{
case 0b000001 :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b100000;
waitMs(200); //3
break;
case 0b000010 :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b010000;
waitMs(200); //2
break;
default :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b001000;
waitMs(200); // 1
break;
}
break;
case 0b110100 :
DDRD = 0b00000000;
PORTD = 0b10000000;
DDRB = 0b111100;
PORTB = 0b000011;
switch(PINB & 0b000011)
{
case 0b000001 :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b100000;
waitMs(200); // 6
break;
case 0b000010 :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b010000;
waitMs(200); // 5
break;
default :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b001000;
waitMs(200); // 4
break;
}
break;
case 0b101100 :
DDRD = 0b00000000;
PORTD = 0b10000000;
DDRB = 0b111100;
PORTB = 0b000011;
switch(PINB & 0b000011)
{
case 0b000001 :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b100000;
waitMs(200); // 9
break;
case 0b000010 :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b010000;
waitMs(200); // 8
break;
default :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b001000;
waitMs(200); // 7
break;
}
break;
case 0b011100 :
DDRD = 0b00000000;
PORTD = 0b10000000;
DDRB = 0b111100;
PORTB = 0b000011;
switch(PINB & 0b000011)
{
case 0b000001 :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b100000;
waitMs(200); // #
break;
case 0b000010 :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b010000;
waitMs(200); // 0
break;
default :
DDRD = 0b10000000;
PORTD = 0b00000000;
DDRB = 0b000011;
PORTB = 0b111100;
PORTC = 0b001000;
waitMs(200); // *
break;
}
break;
default :
PORTC = 0x00;
break;
}
}
}
Leider bin ich noch recht unerfahren im Programmieren von
Mikrocontrollern .
Der Quelltext kann bereits genau unterscheiden welche Taste genau
gedrückt wird auch wenn ich denke das ich das ziemlich umständlich
umgesetzt habe .
Soweit so gut allerdings kommt mir keine Idee wie ich jetzt einen Code
einprogrammieren könnte der nach richtiger Eingabe beispielsweise eine
LED schaltet .
Vielleicht kann mir hier jemand mal einen Ansatz bzw ein Stichwort geben
wie ich das umsetzten könnte .
Lieben Dank schonmal und Gruß