RTC_NXP_Arduino
1.1.2
RTC driver device operation sample code for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
SPI_for_RTC.cpp
1
#include "RTC_NXP.h"
2
3
void
SPI_for_RTC::txrx
( uint8_t *data,
int
size )
4
{
5
digitalWrite( SS, LOW );
6
SPI.transfer( data, size );
7
digitalWrite( SS, HIGH );
8
}
9
10
void
SPI_for_RTC::reg_w
( uint8_t reg_adr, uint8_t *data,
int
size )
11
{
12
uint8_t v[ size + 1 ];
13
14
v[ 0 ] = reg_adr;
15
memcpy( v + 1, data, size );
16
17
txrx
( v,
sizeof
( v ) );
18
}
19
20
void
SPI_for_RTC::reg_w
( uint8_t reg_adr, uint8_t data )
21
{
22
uint8_t v[] = { reg_adr, data };
23
24
txrx
( v,
sizeof
( v ) );
25
}
26
27
void
SPI_for_RTC::reg_r
( uint8_t reg_adr, uint8_t *data,
int
size )
28
{
29
uint8_t v[ size + 1 ];
30
31
for
(
int
i = 0; i < size + 1; i++ ) v[ i ] = 0xFF;
32
33
v[ 0 ] = (uint8_t)(reg_adr | 0x80);
34
35
txrx
( v,
sizeof
( v ) );
36
37
memcpy( data, v + 1, size );
38
}
39
40
uint8_t
SPI_for_RTC::reg_r
( uint8_t reg_adr )
41
{
42
uint8_t v[] = { (uint8_t)(reg_adr | 0x80), 0xFF };
43
44
txrx
( v,
sizeof
( v ) );
45
46
return
v[ 1 ];
47
}
48
49
void
SPI_for_RTC::write_r8
( uint8_t reg, uint8_t val )
50
{
51
reg_w
( reg, val );
52
}
53
54
uint8_t
SPI_for_RTC::read_r8
( uint8_t reg )
55
{
56
return
reg_r
( reg );
57
}
58
59
void
SPI_for_RTC::bit_op8
( uint8_t reg, uint8_t mask, uint8_t value )
60
{
61
uint8_t tmp =
reg_r
( reg ) & mask;
62
reg_w
( reg, tmp | value );
63
}
SPI_for_RTC::read_r8
uint8_t read_r8(uint8_t reg)
Definition
SPI_for_RTC.cpp:54
SPI_for_RTC::bit_op8
void bit_op8(uint8_t reg, uint8_t mask, uint8_t value)
Definition
SPI_for_RTC.cpp:59
SPI_for_RTC::reg_w
void reg_w(uint8_t reg_adr, uint8_t *data, int size)
Definition
SPI_for_RTC.cpp:10
SPI_for_RTC::txrx
void txrx(uint8_t *data, int size)
Definition
SPI_for_RTC.cpp:3
SPI_for_RTC::write_r8
void write_r8(uint8_t reg, uint8_t val)
Definition
SPI_for_RTC.cpp:49
SPI_for_RTC::reg_r
void reg_r(uint8_t reg_adr, uint8_t *data, int size)
Definition
SPI_for_RTC.cpp:27
Generated by
1.17.0