Hi Dirk,
Zitat Zitat von Dirk Beitrag anzeigen
Die Feldvariable, die als uint8_t ir_value[1] deklariert ist, enthält letztlich nur EINE Variable, die heißt ir_value[0].
So muss man sie auch ansprechen.
Die beiden Variablen ir_value und ir_value[0] sind nicht identisch.
das muss ich erstmal verarbeiten (und verstehen)...

in meinem programm (die basis war das "Example_06_I2CMaster") ist z.b:
Code:
// Read all registers function 
 
uint8_t RP6data[32]; // This array will contain all register values of RP6  
                     // after you called readAllRegisters() 
                      
                     // It is better to keep such big arrays GLOBAL as  
                     // they otherwise fill up the stack in memory... 
 
/** 
 * This function reads ALL registers available in the standard I2C Bus Slave 
 * Example program for the Robot Base and outputs their values on the serial interface.  
 * You will see a lot of zeros when the Motors are not running. The main values that are not 
 * zero are the two Light Sensors and the two free ADC Channels. 
 */ 
void readAllRegisters(void) 
{ 
    I2CTWI_transmitByte(I2C_RP6_BASE_ADR, 0); // Start with register 0... 
    I2CTWI_readBytes(I2C_RP6_BASE_ADR,RP6data, 30); // and read all 30 registers up to 
                                                    // register Number 29 ! 
 
    // Now we output the Data we have just read on the serial interface: 
    writeString_P("\nREADING ALL RP6 REGISTERS:"); 
    uint8_t i = 0; 
    for(i = 0; i < 30; i++) 
    { 
        if(i % 8 == 0)           // add some newline chars otherwise everything  
            writeChar('\n');  // is printed on ONE single line... 
        else 
            writeString_P(" | "); 
        writeChar('#'); 
        writeIntegerLength(i,DEC,2); 
        writeChar(':'); 
        writeIntegerLength(RP6data[i],DEC,3); 
    } 
    writeChar('\n'); 
}
die variable (array) "uint8_t RP6data[32]", die auch so definiert wird und dann in der zeile:

I2CTWI_readBytes(I2C_RP6_BASE_ADR,RP6data, 30);

auch als RP6data beschrieben/gefüllt wird...

aber wie gesagt, das muss ich erstmal verstanden haben...

ein kleiner erfolg auf dem weg zu einer funktionierenden bake:

es ist mir gelungen mit der einstellung an den beiden potis des blinkers und an der mSleep-verzögerung im programm das so einzustellen, dass über einen längeren zeitraum einmal pro sekunde das IRsignal gesendet UND auch vom RP6 empfangen wird. Ohne aussetzer, das war bisher nicht der fall, war mehr oder weniger zufällig, wenns mal geklapt hat, zumindest nicht so regelmäßig..