die Kalibrierdaten werden in einer Structurvariablen abgelegt, die so auch ins EEPROM geschrieben wird -->
sourceforge.net/p/nibo/code/HEAD/tree/niborobolib/trunk/src/nibobee/line.c:
typedef struct {
uint16_t black[3]; // sum of CALSAMPLES samples
uint16_t white[3]; // sum of CALSAMPLES samples
} line_cal_t;
line_cal_t line_cal;
:
void line_writePersistent() {
eeprom_write_block (&line_cal, LINE_EEPROM, sizeof(line_cal_t));
}
Gelesen werden die Sensorwerte in der Reihenfolge Links-Center-Rechts
Im EEPROM stehen also die Kalibrierwerte in der Reihenfolge
Links schwarz (LS) - Mitte Schwarz (CS) - Rechts schwarz (RS) usw. für weiß (LW), (CW), (RW)
zum EEPROM Inhalt - also zuerstmal Trennzeichen einfügen -->
rn-wissen.de/wiki/index.php/HEX-Datei:
:20 | 0000 | 00 | 200D | 001B | 600D | 5F29 | DF58 | 4030 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 |
--- | ---- | -- | (LS) | (CS) | (RS) | (LW) | (CW) | (RW) | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 |
Jetzt muss man die beiden Byte für einen Kalibrierwert wieder richtig rum drehen zum Beispiel für
(RS): 600D -> 0D60 -> Hex in Taschenrechner eingeben -> Dezimal 3424
(RW): 4030 -> 3040 -> Hex in Taschenrechner eingeben -> Dezimal 12352
So - und wenn Du wissen willst, wie die Kalibrierwerte ermittelt werden.. dann musst Du Dich selber durch die Sourcen wühlen (seit meiner Bienenzeit da hat sich doch einiges geändert/verbessert). -->
sourceforge.net/p/nibo/code/HEAD/tree/niborobolib/trunk/src/nibobee/analog.c