1 /* Author: Domen Puncer <domen@cba.si>. License: WTFPL, see file LICENSE */
7 #include <drivers/1w.h>
8 //#include <drivers/ds2482_1w.h>
9 #include <drivers/bitbang_1w.h>
12 void test_1w_func(u32 arg
)
17 struct ds2482_data ds2482_data
= {
21 struct w1_master _w1
, *w1
= &_w1
;
22 w1
->priv
= &ds2482_data
;
23 ds2482_1w_register(w1
);
25 struct bitbang_1w_data bitbang_1w_data
= {
28 struct w1_master _w1
, *w1
= &_w1
;
29 w1
->priv
= &bitbang_1w_data
;
30 bitbang_1w_register(w1
);
34 int n
= w1_scan(w1
, addrs
, 5);
35 printf("found %i 1-wire devices:\n", n
);
37 u8
*b
= addrs
[i
].bytes
;
38 printf(" %02x%02x%02x%02x%02x%02x%02x%02x\n",
39 b
[0], b
[1], b
[2], b
[3],
40 b
[4], b
[5], b
[6], b
[7]);
43 n
= w1_read_rom(w1
, &addrs
[0]);
44 printf("read_rom: %i\n", n
);
45 u8
*b
= addrs
[0].bytes
;
46 printf(" %02x%02x%02x%02x%02x%02x%02x%02x\n",
47 b
[0], b
[1], b
[2], b
[3],
48 b
[4], b
[5], b
[6], b
[7]);
51 /* some example code for ds2890 1-wire digital potentiometer */
54 memcpy(pot
.bytes
, "\x2c\x71\x47\x07\x00\x00\x00\x7b", 8);
57 w1_match_rom(w1
, pot
);
59 u8 tmp1
= w1_read(w1
);
60 u8 tmp2
= w1_read(w1
);
61 printf("%s, 1w: feat:%02x, ctrl:%02x\n", __func__
, tmp1
, tmp2
);
64 w1_match_rom(w1
, pot
);
68 printf("%s, 1w: ctrl:%02x, wiper:%02x\n", __func__
, tmp1
, tmp2
);
71 w1_match_rom(w1
, pot
);
76 w1_write(w1
, '\x96'); /* release code */
77 printf("%s, 1w: new pos:%02x\n", __func__
, tmp1
);
79 /* prepare for inc/dec */
80 w1_match_rom(w1
, pot
);
86 printf("%s, %i, wiper pos:%02x\n", __func__
, i
++, w1_read(w1
));