Ah.. so langsam kommts....
Du verwendest eine/die Funkton ähnlich/gleich wie void task_ADC(void) zum Auslesen der Werte?
Du fragst einen anderen ADC Port ab... ADC 7?
Du hast aber auch gesehen:
Code:
if(current_adc_channel == 7)
current_adc_channel = 0;
else
current_adc_channel++;
Liest du also die Keys deiner 4x4 und der 1x5 parallel ein?
Ich frage nicht umsonst nach der Verschaltung, weisst du...
Warum nutzt du keinen der vielen freien ADC Ports statt den ADC0 2 mal zu belegen? Zumindest für die Fehlersuche...
Die Auswertung... ist ja letztlich das :
Code:
if(adcKeypad < 830) pressedKeyNumber = 5;
if(adcKeypad < 790) pressedKeyNumber = 4;
if(adcKeypad < 700) pressedKeyNumber = 3;
if(adcKeypad < 580) pressedKeyNumber = 2;
if(adcKeypad < 50) pressedKeyNumber = 1;
Da hast du also deine Werte für die 16 keys eingegeben/erweitert?
Ich sagte schon mal... du darfst keine genauen Zahlen abfragen sondern Bereiche
Du gabst an: 208,221,233,246, ich würde also in der Abfrage auf jeder Zahl 5 oder 10 addieren... wird aber nicht das Problem sein...
Du sprachst von Wert (ADC) 920 .. das klingt mir immer noch als sehr hoch... bist du sicher das nicht eine der Tasten klebt?
Erzeugen alle Keys 920 ?
Und wie bist du an die Werte um 230 gekommen wenn die Tastatur nun 920 produziert?
hast du den Schaltplan mal darauf hin abgeklopft, ob evtl parasitäre Widerstände sich Gegenseituig beeinflussen? Bei dem Schaltplan aus dem tread liegt z.B. ein 3,3 K gegen GND, die anderen Widerstände dürften jedoch nicht wirken wenn keine Taste gedrückt ist...
Sorry... langsam verstehe ich was du willst aber es fehlen immer noch Massenweise infos.
Poste doch mal bitte wie Dirk sagte die komplette Funktion.
Achso.. und wenn du schon von Anfang an das Gefühl hast wir verstehen es nicht.. wärs gut nachzudenken wie man das verständlicher darstellen kann, oder? Support ist kein Ratespiel.
Lesezeichen