So habe Heute Zeit gehabt mich mit dem Schalterproblem zu beschäftigen.
Nachdem ich traceroutinen in das Selftest Programm eingebaut hatte, war sofort klar was passiert ist.
Die Schalterfunktion hat für S1 33 zurüchgegeben, dadurch hat Asuro geglaubt S1 plus S6 ist gedrückt.
Warum?
Der richtige Wert wäre 32 für S1 und 1 für S6 , 33 = 32 +1.
Alles klar ?
Nach Änderung der Pollswitchfunktion von
return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 63.0 + 0.5));
auf
return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 62.0 + 0.5));
hat es dann gefunzt.
Ich habe mein Traceprogramm angehängt.
Richtige Werte sind:
S1 32
S2 16
S3 8
S4 4
S5 2
S6 1
Außerdem gibt das Programm noch den Wert für i in der Funktion weiter oben.
Also main.hex in den Asuro laden,Taste 1 bis 6 drücken, auf dem Terminalprogramm schauen welche Werte kommen, Taschenrechner nehmen in der obingen Formel das jeweilige i einsetzen und den geeigneten Multiplikator ermitteln.
Hoffe das hilft denjenigen, die Probleme mit den Schaltern haben.
btw.: mit dem Tesprogramm funktionieren die Funktionen die dem jeweiligen Schalter zugeordnet waren nicht mehr richtig.
Das stört aber nicht, weil es darum auch nicht geht, es soll lediglich überprüft werden, was intern passiert.
Lesezeichen