BusInOut_Arduino
0.1.1
Temperature sensor device operation sample code for Arduino
Loading...
Searching...
No Matches
src
BusInOut.cpp
Go to the documentation of this file.
1
#include "
BusInOut.h
"
2
3
BusInOut::BusInOut
(
4
uint8_t bit0,
5
uint8_t bit1,
6
uint8_t bit2,
7
uint8_t bit3,
8
uint8_t bit4,
9
uint8_t bit5,
10
uint8_t bit6,
11
uint8_t bit7
12
)
13
{
14
_bits
[ 0 ] = bit0;
15
_bits
[ 1 ] = bit1;
16
_bits
[ 2 ] = bit2;
17
_bits
[ 3 ] = bit3;
18
_bits
[ 4 ] = bit4;
19
_bits
[ 5 ] = bit5;
20
_bits
[ 6 ] = bit6;
21
_bits
[ 7 ] = bit7;
22
23
config
( INPUT );
24
}
25
26
uint8_t
BusInOut::config
(
int
conf )
27
{
28
uint8_t last_bit = -1;
29
30
for
(
int
i = 0; i < 8; i++ )
31
{
32
if
(
_bits
[ i ] ==
nc
)
33
continue
;
34
35
pinMode(
_bits
[ i ], conf );
36
last_bit = i;
37
}
38
39
_width
= last_bit + 1;
40
_mode
= conf;
41
42
return
last_bit;
43
}
44
45
void
BusInOut::value
( uint8_t v )
46
{
47
for
(
int
i = 0; i <
_width
; i++ )
48
{
49
if
(
_bits
[ i ] ==
nc
)
50
continue
;
51
52
digitalWrite(
_bits
[ i ], (v >> i) & 0x01 );
53
}
54
}
55
56
uint8_t
BusInOut::value
(
void
)
57
{
58
uint8_t r = 0x00;
59
60
for
(
int
i = 0; i <
_width
; i++ )
61
{
62
if
(
_bits
[ i ] ==
nc
)
63
continue
;
64
65
r |= (digitalRead(
_bits
[ i ] ) ? 0x01 : 0x00) << i;
66
}
67
68
return
r;
69
}
70
71
BusInOut
&
BusInOut::operator=
( uint8_t v )
72
{
73
value
( v );
74
return
*
this
;
75
}
76
77
BusInOut
&
BusInOut::operator=
(
BusInOut
& )
78
{
79
return
*
this
;
80
}
81
82
BusInOut::operator int()
83
{
84
return
value();
85
}
BusInOut.h
BusInOut
Definition
BusInOut.h:23
BusInOut::BusInOut
BusInOut(uint8_t bit0=nc, uint8_t bit1=nc, uint8_t bit2=nc, uint8_t bit3=nc, uint8_t bit4=nc, uint8_t bit5=nc, uint8_t bit6=nc, uint8_t bit7=nc)
Definition
BusInOut.cpp:3
BusInOut::value
virtual uint8_t value(void)
Definition
BusInOut.cpp:56
BusInOut::_bits
uint8_t _bits[8]
Definition
BusInOut.h:73
BusInOut::_width
uint8_t _width
Definition
BusInOut.h:74
BusInOut::operator=
BusInOut & operator=(uint8_t v)
Definition
BusInOut.cpp:71
BusInOut::config
virtual uint8_t config(int conf)
Definition
BusInOut.cpp:26
BusInOut::_mode
uint8_t _mode
Definition
BusInOut.h:75
BusInOut::nc
static constexpr uint8_t nc
Definition
BusInOut.h:26
Generated by
1.10.0