Hallo!
Ich habe mir eine Funktion geschrieben, um zu prüfen ob ein Sensor mit
einer bestimmten ROM-Id mit dem 1-WIRE Bus verbunden ist. Jedoch gibt
diese Funktion immer false zurück, wenn die Sensor-Temperatur über ca.
50°C steigt. Kann mir evtl. jemand helfen? Im Datenblatt finde ich
keine Lösung. Trozdem kann ich den Sensor ansprechen, und die
Temperatur auslesen.
Hier die Funktion (AVR-GCC):
unsigned char SearchRom(unsigned char RomID[])
{
unsigned char i,j,temp,op;
if(ow_reset()) return FALSE;
write_byte(0xF0);
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
op = 0;
if (read_bit()==1) op++;
wait_us(120);
if (read_bit()==1) op++;
temp = RomID[i]>>j;
temp &= 0x01;
write_bit(temp);
}
if (op == 2) return FALSE;
}
return TRUE;
}
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.