Sida 1 av 1

Två tempgivare men bara en temperatur

Postat: 18 jun 2013, 16:08
av Träflaskan
Har ett lite lustigt problem. Använder mig av Compact.NET (DalSemi) och experimenterar med ett nyligen inköpt temperaturnät med två sensorer https://www.m.nu/2-sensorer-temperaturl ... -p-35.html med seriell anslutning till min PC (skall senare anslutas till en WinCE burk).

Om man kopplar in en sensor (spelar ingen roll före eller efter splittern) så fungerar allt lysande. Om man kopplar in båda givarna så hittas båda sensorerna men jag får bara värden från den ena sensorn trots att jag använder mig av SelectDevice (med korrekta adresser). Jag kollar också CRC8 så att det inte skall vara något fel i anropet och en test med helt felaktig adress ger också felaktig CRC8. Om jag under drift kopplar bort sensorn som ändå inte verkar ge några värden så ser allt ut precis som vanligt, men om jag istället kopplar bort den som verkar ge värden så får jag kommunikationsfel mot båda adresserna. Det känns som att det bara är en sensor som svarar på MATCH ROM trots att jag definitivt adresserar den andra sensorn.

Hur kan detta komma sig? Vad är fel? :shock:

Utdrag ur koden:

if (adapter.SelectDevice(device.DeviceId, 0)) // Select device does reset and 0x55
{
adapter.PutByte(0xBE);
byte[] data = adapter.GetBlock(9);
if (data[8] == (byte)CRC8.Compute(data, 0, 8))
{
short t = (short)(data[0] | data[1] << 8);
temp = (float)(t / 16.0);
device.DeviceTemperature = temp;
Debug.WriteLine(device.ToString());
}
else
{
Debug.WriteLine(device.DeviceString + " Wrong checksum");
}
}

Re: Två tempgivare men bara en temperatur

Postat: 18 jun 2013, 23:28
av elf98
Hur beteer sig sensorerna om du använder en färdig mjukvara? Fö att utesluta hårdvarufel...

Re: Två tempgivare men bara en temperatur

Postat: 19 jun 2013, 08:01
av Träflaskan
Provade LogTemp och allt den säger är att "1-Wire network does not exist". :(

Har 64-bitars OS vilket har en förmåga att ställa till saker och ting. Men efter att ha skrivit några serieportsapplikationer så inser jag inte varför detta skulle vara ett problem i mitt fall...

Re: Två tempgivare men bara en temperatur

Postat: 19 jun 2013, 08:31
av Träflaskan
Fick det till slut att fungera med TempLog och då ser det faktiskt rätt ut! Skumt...

Re: Två tempgivare men bara en temperatur

Postat: 19 jun 2013, 09:12
av Träflaskan
Ändrade lite i koden så att den dynamiskt kan ta sig an nya givare...

Om man kopplar bort den "dominanta" givaren och startar applikationen så blir det som tidigare rätt värde på den "recessiva" givaren. Om man sedan under drift kopplar in den "dominanta" givaren så funkar det klockrent!

Om man däremot kopplar bort den "recessiva" givaren, startar applikationen och kopplar in den "dominanta" givaren så blir det som tidigare bara data från den "dominanta" givaren!

Hmmm... Trodde ett tag att felet låg i MATCH ROM (SelectDevice), men då skulle det inte bli som i dessa fallen...

Re: Två tempgivare men bara en temperatur

Postat: 19 jun 2013, 09:24
av Träflaskan
Träflaskan skrev:Ändrade lite i koden så att den dynamiskt kan ta sig an nya givare...

Om man kopplar bort den "dominanta" givaren och startar applikationen så blir det som tidigare rätt värde på den "recessiva" givaren. Om man sedan under drift kopplar in den "dominanta" givaren så funkar det klockrent!

Om man däremot kopplar bort den "recessiva" givaren, startar applikationen och kopplar in den "dominanta" givaren så blir det som tidigare bara data från den "dominanta" givaren!

Hmmm... Trodde ett tag att felet låg i MATCH ROM (SelectDevice), men då skulle det inte bli som i dessa fallen...
Om man däremot kopplar bort den "recessiva" givaren, startar applikationen och kopplar in den "recessiva" givaren så blir det som tidigare bara data från den "dominanta" givaren!

Skall det naturligtvis vara... Börjar bli virrig tydligen... :)

Re: Två tempgivare men bara en temperatur

Postat: 20 jun 2013, 09:30
av Träflaskan
Jahapp! Äntligen hittade jag felet... :oops: