- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: 4*4 Tastatur (Matrix) an tiny2313

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    14.03.2008
    Ort
    Oldenburg
    Beiträge
    84
    Anzeige

    Praxistest und DIY Projekte
    ohh
    du hast recht
    kurz drauf und die ganze zeile ist voll mit der zahl

  2. #12
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Ok, hier mein (im Simulator getesteter) Alternativvorschlag:

    Bei dir divergieren Text und Code bezüglich Spalten und Zeilen. Ich lege es für meinen Code wie folgt fest:
    Die oberen 4 Pins (PD4-PD7) sind die Ausgänge (Zeilen), die unteren 4 (PD0-PD3) die Eingänge (Spalten).
    (ich glaube, bei dir ist es gerade anders herum)

    Der Code funktioniert ungeändert für 4x4 und 4x3, bei 4x3 bleibt einfach nur einer der Eingänge offen.

    Das keys-Array enthält im Augenblick nur Platzhalter und muss natürlich angepasst werden. Einfach Taste drücken, schauen welcher Buchstabe kommt, und den Buchstaben im Array durch das für die Taste gewünschte Symbol ersetzen.

    Code:
    void tastaturabfrageLow() {
    
    	static const uint8_t keys[16] = {'a','b','c','d',
    	                                 'e','f','g','h',
    	                                 'i','j','k','l',
    	                                 'm','n','o','p'};
    	static uint8_t last_key = 0;
    
    	uint8_t cur_key;
    	uint8_t line, row;
    
    	DDRD = 0x10;
    	PORTD = 0x0f;
    
    	for (line=0;line<4;line++) {
    		cur_key = ~PIND & 0x0f;
    		row = 0;
    		while (cur_key) {
    			row++;
    			cur_key >>= 1;
    		}
    		if (row) {
    			cur_key = keys[line*4+row-1];
    			if (cur_key != last_key) {
    				lcd_putc(cur_key);
    				last_key = cur_key;
    				return;
    			}
    		}
    		DDRD <<= 1;
    	}
    	last_key = 0;
    }
    Und in main dann:
    Code:
    	while(1) {
    		tastaturabfrageLow();
    		_delay_ms(50);
    	}
    MfG
    Stefan

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    14.03.2008
    Ort
    Oldenburg
    Beiträge
    84
    riesiges dankeschön
    allerdings habe ich da noch eine frage
    wie heißt die software mit der man sowas simulieren kann?
    würde ja doch einiges vereinfachen

    danke nochmal

  4. #14
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    wie heißt die software mit der man sowas simulieren kann?
    AVR-Studio von Atmel. Gibt es aber leider nur für Windows.
    MfG
    Stefan

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test