Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ostoff,
ich hatte bei meinen ersten Versuchen auch erstmal ein paar Rückschläge zu verkraften, wie ich jetzt weiß oft aufgrund von falschen Vorstellungen was die Sensoren zurückgeben würde. Naiv wie ich war glaubte ich, ich könnte in etwa mit den Werten aus dem Handbuch rechnen.(Blasphemie, zumindes bei odo und line Sensoren ^^)
Nachdem ich mir ein paar Programme gebastelt hatte um die einzelnen Sensorwerte auszulesen und über das Hyperterminal auszugeben, lief es dann besser.
Hier das Programm um die Taster auszulesen, im Anhang das hex-File.
Eigentlich einfach, nur müssen die Zahlen die die Sensoren liefern in einen string, sozusagen die Ziffern aufgedröselt werden.
Code:
#include "asuro.h" //die asuro-funktionen
#include <stdlib.h> // hier kommt itao() her
int main(void) {
unsigned char taste; //der taster-wert
unsigned char ctaste[3]; //taster-wert als string
Init();
while(1) { //endlosschleife
PollSwitch(); //tasterwerte auslesen
PollSwitch(); //tasterwerte auslesen
PollSwitch(); //tasterwerte auslesen
taste = PollSwitch(); //tasterwerte auslesen und speichern
if (taste != 0) { //wenn was gedrückt wurde
itoa((int)taste,ctaste,10); //zahl in string(ziffern) umwandeln
SerWrite(ctaste,3); //string uber IR senden
SerWrite("\n\r",2); //neue zeile, return zum zeilen-anfang
}
}
return 0;
}
Ach ja die Taster-Werte sollten sein, von rechts nach links (wieder von hinten): 1, 2, 4, 8, 16, 32
Ich habe das große Glück, dass bei mir alle Taster-Werte passen.
Ich habe dein proggi mal in meinen Asuro geflasht, was mir auffällt:
1. Deine Verzögerungen mit sleep sind zu kurz, die Zeit die gewartet wird ergibt sich aus "übergebene Zahl" / 72000 in Sekunden. (bei Verwendung der lib aus dem RN 36000)
2. Wenn man einen der drei rechten Taster (von hinten gesehen) erwischt, wechselt die StatusLED mal mehr mal weniger oft zu rot, obwohl der Taster schon längst wieder losgelassen wurde. Vielleicht kommt das vom prellen der Taster, obwohl ich dachte die wären mechanisch entprellt.