Moin Moin,

ich stehe gerade richtig auf den Schlauch und zwar lese aus dem LCD03 Register das Keypad aus und bekommen zwei uint8 Werte, diese rechne ich in ein uint16 um.

Ich habe dann Werte die zum Besipiel folgendem entsprechen:

Taste----Wert
1---------1
2---------2
5---------16
0---------1024
#---------2048

Wie bekomme ich auf möglichst Ressourcen schonende Weise, die Zuordnung hin. Also ich will die reale Taste bekommen.

Mein momentaner Ansatz ist das per Case-Anweisung zuregeln:

Code:
	switch (result)
	{
	
		case 1:
		result = "1";
		break;
		
		case 2:
		result = "2";
		break;
		
		case 4:
		result = "3";
		break;
		
		case 8:
		result = "4";
		break;

		case 16:
		result = "5";
		break;

		case 32:
		result = "6";
		break;
		
		case 64:
		result = "7";
		break;

		case 128:
		result = "8";
		break;
		
		case 256:
		result = "9";
		break;

		case 512:
		result = "*";
		break;
		
		case 1024:
		result = "0";
		break;
		
		case 2048:
		result = "#";
		break;
}
Funktioniert zwar, aber gefällt mir nicht wirklich.

Vielleicht habt Ihr ja ein paar Ideen.

Grüße,

DJ-Psyko

Edit: Vergessen, das ganze für einen Mega32 in C.