
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> Weisst du, das Teil macht zwei Wandlungen DAMIT der Benutzer hochohmige Quellen an den > ADC anschliessen kann. Z.B. über einen Vorwiderwstand als Schutz gegen Überspannung. > Aber du hast ja sooo recht, alles unsinnig und fehlerhaft. Hallo Die Hard, da Du offensichtlich nur diese Sprache verstehst, habe ich weiter unten mal das offizielle Beispiel "GET_KEYBOARD_VALUES.bas" eingefügt, welches ich naheliegenderweise zum Auslesen der Tastaturwerte verwenden wollte. Dieses Beispiel produziert Zufallswerte, deren Streuung beim Drücken einer Taste größer ist, als der Abstand der nominalen Scancodes zweier benachbarter Tasten. Das hat mich dazu veranlasst, zu behaupten, das Keyboard der Station ist Mist. Dieses habe ich durch Verweis auf das Design der Schaltung, auf das Datenblatt, sowie auf die von mir implementierte Abhilfe untermauert. Was braucht es mehr ? Wundert es Dich da, dass mich die folgenden der untenstehenden Kommentarzeilen nunmehr zum Schmunzeln anregen: Diese Beispiele beschränken sich auf die speziellen Resourcen der Station und sind in erster Linie gedacht, dem Anwender die Funktionsfähigkeit der Station zu demonstrieren. Quo errat demonstrator, kann man da nur sagen :-) Was immer Du mit "das Teil macht zwei Wandlungen" in diesem Kontext meinst, ich habe keine Überspannungen an meiner Tastatur und erwarte mithin, dass letztere einfach nur funktioniert, und zwar in einer Weise, die aus der mitgelieferten Doku hervorgeht. Dass dem nicht so ist, veranlasst mich ferner zu der unumstößlichen Aussage, dass ich mir bei meinem nächsten Controller-Projekt eine RN-Control für 50 Euro statt einer C-Control für 150 Euro kaufen werde. Da weiß ich von vorne herein, dass ich ein bisschen basteln muss und kann ohne menschgemachte Probleme in Assembler oder in C programmieren, und, und, und,... Mitfühlende Grüße, Olli 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 'III DEMO ZUM BASIC-COMPUTER UNIT STATION IIIII 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII '-------------------------------------------------------------------- ' ANWENDUNG: ADC8 WERTE FÜR DIE TASTATUR DER STATION '-------------------------------------------------------------------- ' Beispiel zum BASIC COMPUTER UNIT STATION ' Diese Beispiele beschränken sich auf die speziellen Resourcen der ' Station und sind in erster Linie gedacht, dem Anwender die Funktions- ' fähigkeit der Station zu demonstrieren. ' Beispiele zur Sprache CCBASIC und zum Zubehör (soweit zur STATION ' passend) finden Sie im Ordner UNIT_M2.0_M1.2. ' Diese Beispiele sind auch auf der UNIT STATION uneingeschränkt ' lauffähig. '-------------------------------------------------------------------- ' Ein kleines Tool um die Zu jeder Taste gehörigen ADC-Werte, Tabellenwerte ' und decodierte Taste auszugeben. ' ' Die Tastatur ist an den ADC8 angeschlossen. Dieser liefert je nachdem ' welche Taste gedrückt ist, einenaAnderen Wert, der aber eindeutig einer ' Taste zugeordnet werden kann. Je nach Streueung der Widerstandswerte ' sind zwischen den Werten für die einzelnen Tasten ungefähr 17 Digits ' und Sie werden etwa folgende Werte bekommen: ' TASTE ADC8 WERT TASTENCODE ' KEINE <10 255 ' 0 17 0 ' 1 33 1 ' 2 50 2 ' 3 66 3 ' 4 82 4 ' 5 98 5 ' 6 114 6 ' 7 130 7 ' 8 147 8 ' 9 164 9 ' CLR 181 10 ' ENTER 199 11 ' F1 218 12 ' F2 236 13 ' ' Sie können das Unterprogramm als Tastaturdecoder in Ihren eigenen ' Programmen verwenden. Es liefert den Tastencode in der Variablen ' KEYCODE zurück. ' Bekommen Sie bei Ihrem Applicationboard falsche Tastenwerte, so ' Passen Sie bitte den zur jeweiligen Taste gehörenden Sollwertwert an ' den ADC Wert an. ' ' '----------------------------------------------------------------------- '-------------------------- '------ I/O PORTS --------- '-------------------------- define ADC8 ad[8] define LIGHT port[16] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- define KEYCODE byte[1]'DECODIERTE TSTE define VALUE byte[2]'GELESENER TABELLENWERT #INIT LIGHT=off '----UMLEITUNG DER PRINT-FUNKTION AUF DAS LCD ----- print"#ON_LCD#"; print"#INIT#"; print"KEY-DECODER"; pause 50 '-------------------------------------------------------------------- ' ANZEIGE VON TASTENWERT UND DECODIERTER TASTE '-------------------------------------------------------------------- #LOOP pause 5 gosub KEYDECODE print"#L101#"; print"AD8:";:print ADC8; print" "; print"#L110#"; print"#L201#"; print"KEYCODE:";:print KEYCODE; print" "; goto LOOP '-------------------------------------------------------------------- ' TASTATURDECODER (RÜCKKEHR MIT TASTENCODE IN KEYCODE) '-------------------------------------------------------------------- #KEYDECODE KEYCODE=255:if ADC8<10 then return KEYCODE=0:if abs(17-ADC8)<5 then return KEYCODE=1:if abs(33-ADC8)<5 then return KEYCODE=2:if abs(50-ADC8)<5 then return KEYCODE=3:if abs(66-ADC8)<5 then return KEYCODE=4:if abs(82-ADC8)<5 then return KEYCODE=5:if abs(98-ADC8)<5 then return KEYCODE=6:if abs(114-ADC8)<5 then return KEYCODE=7:if abs(130-ADC8)<5 then return KEYCODE=8:if abs(147-ADC8)<5 then return KEYCODE=9:if abs(164-ADC8)<5 then return KEYCODE=10:if abs(181-ADC8)<5 then return'CLR KEYCODE=11:if abs(199-ADC8)<5 then return'ENTER KEYCODE=12:if abs(218-ADC8)<5 then return'F1 KEYCODE=13:if abs(236-ADC8)<5 then return'F2 KEYCODE=255:return |
| Antwort schreiben |