Hi ich schon wieder,
also das ich ja diese niedrigen Werte bekomme, liegt ja auch daran das ich nur eine 8 Bit Variabel habe und so ja bloss bis 255 komme.
Also habe ich mal eine 16 Bit Variable genommen. Abgesehen davon das ich eine Warnung von WinAVR bekomme ich nur unsinn.
LDR1:-27664 | LDR2:102 | LDR3:1 | LDR4:8322
Hier mal der Code:
Code:
void task_ext_LDRs(void)
{
uint8_t i=0; // Laufvariabel
if (i<5)
{
// Configure PCF8591: Ext. Output on + auto increment:
I2CTWI_transmitByte(PCF8591_4LDRS_ADR, 0b01000100 );
// Read the data:
uint8_t results[6];
I2CTWI_readBytes(PCF8591_4LDRS_ADR,results,5);
// Byte 0 contains last conversion result - thus we read 5 bytes,
// skip byte 0 and output only results[1] to results[4]:
writeString_P(" | LDR1:"); writeInteger(results[1], DEC);
writeString_P(" | LDR2:"); writeInteger(results[2], DEC);
writeString_P(" | LDR3:"); writeInteger(results[3], DEC);
writeString_P(" | LDR4:"); writeInteger(results[4], DEC);
writeChar('\n');
i++;
}
}
Wie geschrieben will ich zusätzliche LDR mit dem PCF8591 einlesen und mit den Hauseigenen vergleichen
Trainmen
Lesezeichen