Moin
Ich hab ein Tastenfeld gebaut was mir die gedrückte Taste als 4 bit signal an den Atmega 16 liefert .
Aber so wie es aussieht hab ich ein fehler in der auswertung im Programm gemacht und ich find denn Fehler nicht.
Bin in Sachen C programmierung noch ein Anfänger!
Danke schonmal im vorraus für eure HilfeCode:/ ** Präprozessor ** // #include <avr/io.h> #include <stdint.h> // ** Prototypen ** // void kp_init (void); char kp_taste (void); // ** Funktionen ** // void kp_init (void) // Initialisierung des Keypads { DDRA = 0b00000000; //Port A Pin 1,2,3 als Ausgang , Pin4-8 als Eingang PINA = 0x00; //Port A auf low setzen } char kp_taste (void) //Routine zur Abfrage der Tasten { while (!PINA) { switch (PINA){ case 0b00000001: return '1'; case 0b00000010: return '2'; case 0b00000011: return '3'; case 0b00000100: return '4'; case 0b00000101: return '5'; case 0b00000110: return '6'; case 0b00000111: return '7'; case 0b00001000: return '8'; case 0b00001001: return '9'; case 0b00001010: return '0'; case 0b00001011: return 'z'; case 0b00001100: return 'e'; case 0b00001101: return 'a'; case 0b00001110: return 'b'; case 0b00001111: return 'c'; } } }
Cybrix







Zitieren

Lesezeichen