In order to find out what pulsin really grabs I used serout data to debug...
Here are the results so far -after reading the sensor 3 times.... :
NOTE I changed the code a little bit so I can capture all data (included the start transmit 1bit before each 'bit')
Code:
* * * START * * *
01=> 50uS bit_val= 1
02=> 20uS bit_val= 0
03=> 50uS bit_val= 1
04=> 30uS bit_val= 1
05=> 50uS bit_val= 1
06=> 70uS bit_val= 1
07=> 50uS bit_val= 1
08=> 70uS bit_val= 1
09=> 50uS bit_val= 1
10=> 20uS bit_val= 0
11=> 50uS bit_val= 1
12=> 30uS bit_val= 1
13=> 50uS bit_val= 1
14=> 20uS bit_val= 0
15=> 50uS bit_val= 1
16=> 30uS bit_val= 1
17=> 70uS bit_val= 1
18=> 20uS bit_val= 0
19=> 50uS bit_val= 1
20=> 60uS bit_val= 0
21=> 50uS bit_val= 1
22=> 70uS bit_val= 1
23=> 50uS bit_val= 1
24=> 30uS bit_val= 1
25=> 50uS bit_val= 1
26=> 20uS bit_val= 0
27=> 50uS bit_val= 1
28=> 0uS bit_val= 0
29=> 0uS bit_val= 0
30=> 0uS bit_val= 0
31=> 0uS bit_val= 0
32=> 0uS bit_val= 0
33=> 0uS bit_val= 0
34=> 0uS bit_val= 0
35=> 0uS bit_val= 0
36=> 0uS bit_val= 0
37=> 0uS bit_val= 0
38=> 0uS bit_val= 0
39=> 0uS bit_val= 0
40=> 0uS bit_val= 0
41=> 0uS bit_val= 0
42=> 0uS bit_val= 0
43=> 0uS bit_val= 0
44=> 0uS bit_val= 0
45=> 0uS bit_val= 0
46=> 0uS bit_val= 0
47=> 0uS bit_val= 0
48=> 0uS bit_val= 0
49=> 0uS bit_val= 0
50=> 0uS bit_val= 0
51=> 0uS bit_val= 0
52=> 0uS bit_val= 0
53=> 0uS bit_val= 0
54=> 0uS bit_val= 0
55=> 0uS bit_val= 0
56=> 0uS bit_val= 0
57=> 0uS bit_val= 0
58=> 0uS bit_val= 0
59=> 0uS bit_val= 0
60=> 0uS bit_val= 0
61=> 0uS bit_val= 0
62=> 0uS bit_val= 0
63=> 0uS bit_val= 0
64=> 0uS bit_val= 0
65=> 0uS bit_val= 0
66=> 0uS bit_val= 0
67=> 0uS bit_val= 0
68=> 0uS bit_val= 0
69=> 0uS bit_val= 0
70=> 0uS bit_val= 0
71=> 0uS bit_val= 0
72=> 0uS bit_val= 0
73=> 0uS bit_val= 0
74=> 0uS bit_val= 0
75=> 0uS bit_val= 0
76=> 0uS bit_val= 0
77=> 0uS bit_val= 0
78=> 0uS bit_val= 0
79=> 0uS bit_val= 0
80=> 0uS bit_val= 0
* * * END * * *
* * * START * * *
01=> 50uS bit_val= 1
02=> 20uS bit_val= 0
03=> 50uS bit_val= 1
04=> 30uS bit_val= 1
05=> 50uS bit_val= 1
06=> 70uS bit_val= 1
07=> 50uS bit_val= 1
08=> 70uS bit_val= 1
09=> 50uS bit_val= 1
10=> 20uS bit_val= 0
11=> 50uS bit_val= 1
12=> 30uS bit_val= 1
13=> 50uS bit_val= 1
14=> 20uS bit_val= 0
15=> 50uS bit_val= 1
16=> 20uS bit_val= 0
17=> 70uS bit_val= 1
18=> 20uS bit_val= 0
19=> 50uS bit_val= 1
20=> 70uS bit_val= 1
21=> 50uS bit_val= 1
22=> 60uS bit_val= 0
23=> 50uS bit_val= 1
24=> 30uS bit_val= 1
25=> 50uS bit_val= 1
26=> 20uS bit_val= 0
27=> 50uS bit_val= 1
28=> 0uS bit_val= 0
29=> 0uS bit_val= 0
30=> 0uS bit_val= 0
31=> 0uS bit_val= 0
32=> 0uS bit_val= 0
33=> 0uS bit_val= 0
34=> 0uS bit_val= 0
35=> 0uS bit_val= 0
36=> 0uS bit_val= 0
37=> 0uS bit_val= 0
38=> 0uS bit_val= 0
39=> 0uS bit_val= 0
40=> 0uS bit_val= 0
41=> 0uS bit_val= 0
42=> 0uS bit_val= 0
43=> 0uS bit_val= 0
44=> 0uS bit_val= 0
45=> 0uS bit_val= 0
46=> 0uS bit_val= 0
47=> 0uS bit_val= 0
48=> 0uS bit_val= 0
49=> 0uS bit_val= 0
50=> 0uS bit_val= 0
51=> 0uS bit_val= 0
52=> 0uS bit_val= 0
53=> 0uS bit_val= 0
54=> 0uS bit_val= 0
55=> 0uS bit_val= 0
56=> 0uS bit_val= 0
57=> 0uS bit_val= 0
58=> 0uS bit_val= 0
59=> 0uS bit_val= 0
60=> 0uS bit_val= 0
61=> 0uS bit_val= 0
62=> 0uS bit_val= 0
63=> 0uS bit_val= 0
64=> 0uS bit_val= 0
65=> 0uS bit_val= 0
66=> 0uS bit_val= 0
67=> 0uS bit_val= 0
68=> 0uS bit_val= 0
69=> 0uS bit_val= 0
70=> 0uS bit_val= 0
71=> 0uS bit_val= 0
72=> 0uS bit_val= 0
73=> 0uS bit_val= 0
74=> 0uS bit_val= 0
75=> 0uS bit_val= 0
76=> 0uS bit_val= 0
77=> 0uS bit_val= 0
78=> 0uS bit_val= 0
79=> 0uS bit_val= 0
80=> 0uS bit_val= 0
* * * END * * *
...remember that I use a 4Mhz crystal so the pulse width is returned in 10us increments.
Acoording to the above dubugging infos we can see a 50uS pulse wich according to datasheet is the pulse before each "0" or "1" pulse!
One weird thing is also tha after pulse number 27 I read no pulses!!
Bookmarks