PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grundlagen 1wire Bus



haus51
03.11.2006, 11:17
Hallo
Ich hab lange rumgetan um den 1wireBus zu benutzen und bin dann durch SourceCodeKlau weitergekommen.
Meine Frage ist - der Unterschied zwischen z.B 1wread(9) und 1wread().
Wird bei 1wread alles ausgelesen und bei 1wread nur 9 bit?
Ich bhab die Syntax nicht verstanden. Wer weiss darüber was???
Danke
Günther

for_ro
03.11.2006, 18:24
Nicht ganz.
1wread liest 1 BYTE, 1wread(9) also 9 BYTE.

Gruß Rolf

AVRboy
04.11.2006, 14:50
An was bist du denn gerade dran an einem ds1820 oder so.
ich habe vor ein paar wochen angefangen so einen auszulesen.

mfg

haus51
06.11.2006, 08:10
@Rolf
Danke. Eigentlich logisch
@AVRboy
Ich hab mir mit dem 8535 eine DCF77 Uhr gebaut und will da hinein auch meine Heizungsregelung bringen.
Jetzt hab ich beim Auslesen der DS1822 manchmal falsche Temperaturwerte.Die Hilfe vom BASCOM sagt :
The devices are equipped with a CRC-generator - the LSByte of the sending is always a checksum.
Diese CRC will ich noch nutzen, kann sie aber nicht finden :-((

for_ro
06.11.2006, 10:43
Hallo,
CRC steht im letzten (9.) Byte.
Hier im Forum sind auch schon diverse Code für den ds1820 geposted, such mal nach crc im Bascom-Forum.
Bei Maxim findest du im Datenblatt des Sensors auch eine Spezifikation.

Gruß Rolf

AVRboy
06.11.2006, 13:02
hi,

wenn du deinem ds1822 das commando 33h wie im datenblatt schickst (geht nur wenn nur ein 1wire am bus ist) schickst sendet er dir als erstes seine seinen familycode (8bit lang) dann seine serialnumber (48 bit lang) und zuletzt die crc (8Bit lang) das kann man ungefähr so auslesen

1wreset

1wwrite Read_rom

Family_code = 1wread()
For I = 1 To 6
Serial_number(i) = 1wread()
Next
Crc = 1wread()
If Family_code <> Ds1820 Then

.....................

vielleicht hilfts ja.

mfg

haus51
06.11.2006, 15:07
@AVRboy
Danke für die Hilfe
Ich werd´s sobald ich dazu komme versuchen.
Gruß
Günther