|
Navigation: Bibliotheken > OneWire > Onewire Beispiel |
![]() ![]()
|
CompactC
// Beispielprogramm um den DS18S20 Temperatur Sensor von Dallas Maxim zu lesen
void main(void)
{
char text[40];
int ret, i;
byte rom_code[8];
byte scratch_pad[9];
ret= OneWire_Reset(7); // PortA.7
if(ret == 0)
{
text= "Kein Sensor gefunden";
Msg_WriteText(text);
goto end;
}
OneWire_Write(0xcc); // ROM überspringen Kommando
OneWire_Write(0x44); // starte Temperatur Messung Kommando
AbsDelay(3000);
OneWire_Reset(7); // PortA.7
OneWire_Write(0xcc); // ROM überspringen
OneWire_Write(0xbe); // lese scratch_pad Kommando
for(i=0;i<9;i++) // komplettes scratchpad lesen
{
scratch_pad[i]= OneWire_Read();
Msg_WriteHex(scratch_pad[i]);
}
Msg_WriteChar('\r');
text= "Temperatur: ";
Msg_WriteText(text);
temp= scratch_pad[1]*256 + scratch_pad[0];
Msg_WriteFloat(temp* 0.5);
Msg_WriteChar('C');
Msg_WriteChar('\r');
end:
}
BASIC
' Beispielprogramm um den DS18S20 Temperatur Sensor von Dallas Maxim zu lesen
Dim Text(40) As Char
Dim ret,i As Integer
Dim temp As Integer
Dim rom_code(8) As Byte
Dim scratch_pad(9) As Byte
Sub main()
ret = OneWire_Reset(7) ' PortA.7
If ret = 0 Then
Text= "Kein Sensor gefunden"
Msg_WriteText(Text)
GoTo Ende
End If
OneWire_Write(0xcc) ' ROM überspringen Kommando
OneWire_Write(0x44) ' starte Temperatur Messung Kommando
AbsDelay(3000)
OneWire_Reset(7) ' PortA.7
OneWire_Write(0xcc) ' ROM überspringen Kommando
OneWire_Write(0xbe) ' lese scratch_pad Kommando
For i = 0 To 9 ' komplettes scratchpad lesen
scratch_pad(i)= OneWire_Read()
Msg_WriteHex(scratch_pad(i))
Next
Msg_WriteChar(13)
Text = "Temperatur: "
Msg_WriteText(Text)
temp = scratch_pad(1) * 256 + scratch_pad(0)
Msg_WriteFloat(temp * 0.5)
Msg_WriteChar(99)
Msg_WriteChar(13)
Lab Ende
End Sub