Hi,
mit den änderungen
Code:
case 2://
setLEDs(0b0010);
writeString_P("\n\n messung feldvariable\n");
initRP6Control();
initLCD();
while(true)
{
// rotate (20, RIGHT, 3, false);
// read_IR_value();
uint8_t i = 0;
for(i = 0; i < 499; i++)
{
temp_IR[i] = read_IR_value();
feld_IR[i] = temp_IR[i];
// feld_IR[i] = read_IR_value();
writeIntegerLength(temp_IR[i],DEC,4);
if(i % 7 == 0)
writeChar('\n');
else
writeString_P(" | ");
mSleep(100);
// move(50, FWD, DIST_MM(100), false);
}
clearLCD();
setCursorPosLCD(0, 0);
writeStringLCD_P("bin: ");
setCursorPosLCD(0, 8);
writeIntegerLengthLCD(temp_IR[0], BIN, 8);
mSleep(300);
setMultiIOLED3(0);
readAllRegisters();
mSleep(100);
/**************************/
uint8_t key_1 = getMultiIOPressedButtonNumber();
key_1 = getMultiIOPressedButtonNumber();
if(key_1 != 0) break;
/**************************/
}
break;
konnte ich nun herausfinden, wie oft, bzw. mit welchem muster meine IR-bake sendet - und empfangen wird. Hier ein teilinhalt der feldvariablen "uint8_t feld_IR[500]" :

es ist folgendes muster, welches empfangen wird:
4x nichts / treffer / 3x nichts / treffer / 4x nichts / treffer usw, usw...
ich nehme an, dass der IR empfänger nicht dauernd empfängt, sondern in einem bestimmten rhythmus. Das würde evtl. erklären warum die optische anzeige (LED)
Code:
case 1://
setLEDs(0b0001);
writeString_P("\n\n messung einzelsignal\n");
initRP6Control();
initLCD();
// ---------------------------------------
WDT_setRequestHandler(watchDogRequest);
/*************************************************************/
while(true)
{
// rotate (20, RIGHT, 3, false);
temp = read_IR_value();
mSleep(100);
if (temp == 0)
{
setMultiIOLED3(1);
mSleep(100);
setMultiIOLED3(0);
// move(50, FWD, DIST_MM(100), false);
}
clearLCD();
setCursorPosLCD(0, 0);
writeStringLCD_P("dec: ");
setCursorPosLCD(0, 8);
writeIntegerLengthLCD(temp, DEC, 1);
mSleep(300);
// setMultiIOLED3(0);
readAllRegisters();
mSleep(100);
/**************************/
uint8_t key_1 = getMultiIOPressedButtonNumber();
key_1 = getMultiIOPressedButtonNumber();
if(key_1 != 0) break;
/**************************/
}
break;
zwar funktioniert (reaktion auf einzelne empfangene IR-signale), aber in wesentlich unregelmäßigen abständen als dieses 3 - 1 - 4 - 1 - 3 - 1 - 4 - 1 -...
Diesen rhythmuss möchte ich beibehalten, er scheint mir insofern günstig, weil man mit diesem rhythmus die IR-bake identifizieren könnte...
es beschäftigen mich nun folgende fragen:
- wie finde ich den IR-empfangsrhythmus des RP6 raus?
- Ist er irgendwo angegeben, muss ich ihn irgendwie berechnen/messen (stopwatches?)?
- wie passe ich die beiden frequenzen aneinander an?
für ideen und tipps bin ich wie immer dankbar...
Lesezeichen