Na forum znalazlem skrypt do ukladu ds1820 wykorzystujacy crc8. Z tego co przeczytalem wynika ze ds1820 to uklad do pomiarow temperatury.
Nie bardzo rozumie caly ten skrypcik wiec chcialem poprosic o fachowa porade i ocene czy dobrze kombinuje .
rozumie ze w tym momencie nastepuje sprawdzenie poprawnosci odczytanych danychDim Bd(9) As Byte
Dim Tmp As Integer
Dim Temp As Byte
Dim I As Byte
Dim Crc As Byte
Dim T As Integer
Dim T1 As Integer
Dim T2 As Integer
Temp:
1wwrite &HCC
1wwrite &H44
Waitms 600
1wreset
1wwrite &HCC
1wwrite &HBE
Bd(1) = 1wread(9)
1wreset
Gosub Suma
i tego za bardzo nierozumie. Co to jest Bd(i), czy to jest tablica z zapisanymi bitami odebranej informacji?
If Crc = 0 Then
Tmp = Bd(1) And 1
If Tmp = 1 Then Decr Bd(1)
T = Makeint(bd(1) , Bd(2))
T = T * 50 : T = T - 25 : T1 = Bd(8) - Bd(7) : T1 = T1 * 100
T1 = T1 / Bd(8) : T = T + T1 : T = T / 100
End If
Return
Suma:
Crc = 0
For I = 1 To 9
Temp = Crc Xor Bd(i)
Crc = Lookup(temp , Crc8)
Next
Return
Crc = Lookup(temp , Crc8) <--- rozumie ze ta funkcja sprawdza czy w tabicy danych znajduje sie wartosc operacji "Crc Xor Bd(i)".
Czy wszystkie wartosci musza by poprawne aby funkcja zwrocila 0? Co zwroci funkcja jezeli jakis bit bedzie przeklamany?
rozumie ze to jest tablica danych, ktora okresla wszystkie poprawnie odebrane dane. Skad sie one wziely? I jak je wyliczyc?[/quote]Crc8:
Data 0 , 94 , 188 , 226 , 97 , 63 , 221 , 131 , 194 , 156
Data 126 , 32 , 163 , 253 , 31 , 65 , 157 , 195 , 33 , 127
Data 252 , 162 , 64 , 30 , 95 , 1 , 227 , 189 , 62 , 96
Data 130 , 220 , 35 , 125 , 159 , 193 , 66 , 28 , 254 , 160
Data 225 , 191 , 93 , 3 , 128 , 222 , 60 , 98 , 190 , 224
Data 2 , 92 , 223 , 129 , 99 , 61 , 124 , 34 , 192 , 158
Data 29 , 67 , 161 , 255 , 70 , 24 , 250 , 164 , 39 , 121
Data 155 , 197 , 132 , 218 , 56 , 102 , 229 , 187 , 89 , 7
Data 219 , 133 , 103 , 57 , 186 , 228 , 6 , 88 , 25 , 71
Data 165 , 251 , 120 , 38 , 196 , 154 , 101 , 59 , 217 , 135
Data 4 , 90 , 184 , 230 , 167 , 249 , 27 , 69 , 198 , 152
Data 122 , 36 , 248 , 166 , 68 , 26 , 153 , 199 , 37 , 123
Data 58 , 100 , 134 , 216 , 91 , 5 , 231 , 185 , 140 , 210
Data 48 , 110 , 237 , 179 , 81 , 15 , 78 , 16 , 242 , 172
Data 47 , 113 , 147 , 205 , 17 , 79 , 173 , 243 , 112 , 46
Data 204 , 146 , 211 , 141 , 111 , 49 , 178 , 236 , 14 , 80
Data 175 , 241 , 19 , 77 , 206 , 144 , 114 , 44 , 109 , 51
Data 209 , 143 , 12 , 82 , 176 , 238 , 50 , 108 , 142 , 208
Data 83 , 13 , 239 , 177 , 240 , 174 , 76 , 18 , 145 , 207
Data 45 , 115 , 202 , 148 , 118 , 40 , 171 , 245 , 23 , 73
Data 8 , 86 , 180 , 234 , 105 , 55 , 213 , 139 , 87 , 9
Data 235 , 181 , 54 , 104 , 138 , 212 , 149 , 203 , 41 , 119
Data 244 , 170 , 72 , 22 , 233 , 183 , 85 , 11 , 136 , 214
Data 52 , 106 , 43 , 117 , 151 , 201 , 74 , 20 , 246 , 168
Data 116 , 42 , 200 , 150 , 21 , 75 , 169 , 247 , 182 , 232
Data 10 , 84 , 215 , 137 , 107 , 53