Hardware Reference
In-Depth Information
246 Start: word = 0;
247 count = 0;
248
249 /
250
Wait for a space of 46 ms :
251
/
252 do {
253 v = wait_change(&ms);
254 } while ( ms < 46.5 );
255
256 /
257
Wait for start : 4.5ms high, then 4.5ms low :
258
/
259 for ( v=1;; ) {
260 if ( v )
261 v = wait_level(0);
262 v = wait_level(1);
263 v = wait_change(&ms); /
High to Low
/
264 if ( !v && ms >= 4.0 && ms <= 5.0 ) {
265 v = wait_change(&ms);
266 if ( v && ms >= 4.0 && ms <= 5.0 )
267 break ;
268 }
269 }
270
271 /
272
Get 32 bi t code :
273
/
274 do {
275 /
Wait for line to go low
/
276 v = wait_change(&ms);
277 if ( v || ms < 0.350 || ms > 0.8500 )
278 goto Start;
279
280 /
Wait for line to go high
/
281 v = wait_change(&ms);
282 if ( !v || ms < 0.350 || ms > 2.0 )
283 goto Start;
284
285 b = ms < 1.000 ? 0 : 1;
286 word = (word << 1) | b;
287 } while ( ++count < 32 );
288
289 /
290
Eliminate key stutter :
291
/
Search WWH ::




Custom Search