3
3
#include <string.h>
4
4
#include <furi_hal_cortex.h>
5
5
6
- static bool cc1101_spi_trx (FuriHalSpiBusHandle * handle , uint8_t * tx , uint8_t * rx , uint8_t size ) {
6
+ static bool
7
+ cc1101_spi_trx (const FuriHalSpiBusHandle * handle , uint8_t * tx , uint8_t * rx , uint8_t size ) {
7
8
FuriHalCortexTimer timer = furi_hal_cortex_timer_get (CC1101_TIMEOUT * 1000 );
8
9
9
10
while (furi_hal_gpio_read (handle -> miso )) {
@@ -16,7 +17,7 @@ static bool cc1101_spi_trx(FuriHalSpiBusHandle* handle, uint8_t* tx, uint8_t* rx
16
17
return true;
17
18
}
18
19
19
- CC1101Status cc1101_strobe (FuriHalSpiBusHandle * handle , uint8_t strobe ) {
20
+ CC1101Status cc1101_strobe (const FuriHalSpiBusHandle * handle , uint8_t strobe ) {
20
21
uint8_t tx [1 ] = {strobe };
21
22
CC1101Status rx [1 ] = {0 };
22
23
rx [0 ].CHIP_RDYn = 1 ;
@@ -27,7 +28,7 @@ CC1101Status cc1101_strobe(FuriHalSpiBusHandle* handle, uint8_t strobe) {
27
28
return rx [0 ];
28
29
}
29
30
30
- CC1101Status cc1101_write_reg (FuriHalSpiBusHandle * handle , uint8_t reg , uint8_t data ) {
31
+ CC1101Status cc1101_write_reg (const FuriHalSpiBusHandle * handle , uint8_t reg , uint8_t data ) {
31
32
uint8_t tx [2 ] = {reg , data };
32
33
CC1101Status rx [2 ] = {0 };
33
34
rx [0 ].CHIP_RDYn = 1 ;
@@ -39,7 +40,7 @@ CC1101Status cc1101_write_reg(FuriHalSpiBusHandle* handle, uint8_t reg, uint8_t
39
40
return rx [1 ];
40
41
}
41
42
42
- CC1101Status cc1101_read_reg (FuriHalSpiBusHandle * handle , uint8_t reg , uint8_t * data ) {
43
+ CC1101Status cc1101_read_reg (const FuriHalSpiBusHandle * handle , uint8_t reg , uint8_t * data ) {
43
44
assert (sizeof (CC1101Status ) == 1 );
44
45
uint8_t tx [2 ] = {reg | CC1101_READ , 0 };
45
46
CC1101Status rx [2 ] = {0 };
@@ -52,33 +53,36 @@ CC1101Status cc1101_read_reg(FuriHalSpiBusHandle* handle, uint8_t reg, uint8_t*
52
53
return rx [0 ];
53
54
}
54
55
55
- uint8_t cc1101_get_partnumber (FuriHalSpiBusHandle * handle ) {
56
+ uint8_t cc1101_get_partnumber (const FuriHalSpiBusHandle * handle ) {
56
57
uint8_t partnumber = 0 ;
57
58
cc1101_read_reg (handle , CC1101_STATUS_PARTNUM | CC1101_BURST , & partnumber );
58
59
return partnumber ;
59
60
}
60
61
61
- uint8_t cc1101_get_version (FuriHalSpiBusHandle * handle ) {
62
+ uint8_t cc1101_get_version (const FuriHalSpiBusHandle * handle ) {
62
63
uint8_t version = 0 ;
63
64
cc1101_read_reg (handle , CC1101_STATUS_VERSION | CC1101_BURST , & version );
64
65
return version ;
65
66
}
66
67
67
- uint8_t cc1101_get_rssi (FuriHalSpiBusHandle * handle ) {
68
+ uint8_t cc1101_get_rssi (const FuriHalSpiBusHandle * handle ) {
68
69
uint8_t rssi = 0 ;
69
70
cc1101_read_reg (handle , CC1101_STATUS_RSSI | CC1101_BURST , & rssi );
70
71
return rssi ;
71
72
}
72
73
73
- CC1101Status cc1101_reset (FuriHalSpiBusHandle * handle ) {
74
+ CC1101Status cc1101_reset (const FuriHalSpiBusHandle * handle ) {
74
75
return cc1101_strobe (handle , CC1101_STROBE_SRES );
75
76
}
76
77
77
- CC1101Status cc1101_get_status (FuriHalSpiBusHandle * handle ) {
78
+ CC1101Status cc1101_get_status (const FuriHalSpiBusHandle * handle ) {
78
79
return cc1101_strobe (handle , CC1101_STROBE_SNOP );
79
80
}
80
81
81
- bool cc1101_wait_status_state (FuriHalSpiBusHandle * handle , CC1101State state , uint32_t timeout_us ) {
82
+ bool cc1101_wait_status_state (
83
+ const FuriHalSpiBusHandle * handle ,
84
+ CC1101State state ,
85
+ uint32_t timeout_us ) {
82
86
bool result = false;
83
87
CC1101Status status = {0 };
84
88
FuriHalCortexTimer timer = furi_hal_cortex_timer_get (timeout_us );
@@ -92,35 +96,35 @@ bool cc1101_wait_status_state(FuriHalSpiBusHandle* handle, CC1101State state, ui
92
96
return result ;
93
97
}
94
98
95
- CC1101Status cc1101_shutdown (FuriHalSpiBusHandle * handle ) {
99
+ CC1101Status cc1101_shutdown (const FuriHalSpiBusHandle * handle ) {
96
100
return cc1101_strobe (handle , CC1101_STROBE_SPWD );
97
101
}
98
102
99
- CC1101Status cc1101_calibrate (FuriHalSpiBusHandle * handle ) {
103
+ CC1101Status cc1101_calibrate (const FuriHalSpiBusHandle * handle ) {
100
104
return cc1101_strobe (handle , CC1101_STROBE_SCAL );
101
105
}
102
106
103
- CC1101Status cc1101_switch_to_idle (FuriHalSpiBusHandle * handle ) {
107
+ CC1101Status cc1101_switch_to_idle (const FuriHalSpiBusHandle * handle ) {
104
108
return cc1101_strobe (handle , CC1101_STROBE_SIDLE );
105
109
}
106
110
107
- CC1101Status cc1101_switch_to_rx (FuriHalSpiBusHandle * handle ) {
111
+ CC1101Status cc1101_switch_to_rx (const FuriHalSpiBusHandle * handle ) {
108
112
return cc1101_strobe (handle , CC1101_STROBE_SRX );
109
113
}
110
114
111
- CC1101Status cc1101_switch_to_tx (FuriHalSpiBusHandle * handle ) {
115
+ CC1101Status cc1101_switch_to_tx (const FuriHalSpiBusHandle * handle ) {
112
116
return cc1101_strobe (handle , CC1101_STROBE_STX );
113
117
}
114
118
115
- CC1101Status cc1101_flush_rx (FuriHalSpiBusHandle * handle ) {
119
+ CC1101Status cc1101_flush_rx (const FuriHalSpiBusHandle * handle ) {
116
120
return cc1101_strobe (handle , CC1101_STROBE_SFRX );
117
121
}
118
122
119
- CC1101Status cc1101_flush_tx (FuriHalSpiBusHandle * handle ) {
123
+ CC1101Status cc1101_flush_tx (const FuriHalSpiBusHandle * handle ) {
120
124
return cc1101_strobe (handle , CC1101_STROBE_SFTX );
121
125
}
122
126
123
- uint32_t cc1101_set_frequency (FuriHalSpiBusHandle * handle , uint32_t value ) {
127
+ uint32_t cc1101_set_frequency (const FuriHalSpiBusHandle * handle , uint32_t value ) {
124
128
uint64_t real_value = (uint64_t )value * CC1101_FDIV / CC1101_QUARTZ ;
125
129
126
130
// Sanity check
@@ -135,7 +139,7 @@ uint32_t cc1101_set_frequency(FuriHalSpiBusHandle* handle, uint32_t value) {
135
139
return (uint32_t )real_frequency ;
136
140
}
137
141
138
- uint32_t cc1101_set_intermediate_frequency (FuriHalSpiBusHandle * handle , uint32_t value ) {
142
+ uint32_t cc1101_set_intermediate_frequency (const FuriHalSpiBusHandle * handle , uint32_t value ) {
139
143
uint64_t real_value = value * CC1101_IFDIV / CC1101_QUARTZ ;
140
144
assert ((real_value & 0xFF ) == real_value );
141
145
@@ -146,7 +150,7 @@ uint32_t cc1101_set_intermediate_frequency(FuriHalSpiBusHandle* handle, uint32_t
146
150
return (uint32_t )real_frequency ;
147
151
}
148
152
149
- void cc1101_set_pa_table (FuriHalSpiBusHandle * handle , const uint8_t value [8 ]) {
153
+ void cc1101_set_pa_table (const FuriHalSpiBusHandle * handle , const uint8_t value [8 ]) {
150
154
uint8_t tx [9 ] = {CC1101_PATABLE | CC1101_BURST }; //-V1009
151
155
CC1101Status rx [9 ] = {0 };
152
156
rx [0 ].CHIP_RDYn = 1 ;
@@ -159,7 +163,7 @@ void cc1101_set_pa_table(FuriHalSpiBusHandle* handle, const uint8_t value[8]) {
159
163
assert ((rx [0 ].CHIP_RDYn | rx [8 ].CHIP_RDYn ) == 0 );
160
164
}
161
165
162
- uint8_t cc1101_write_fifo (FuriHalSpiBusHandle * handle , const uint8_t * data , uint8_t size ) {
166
+ uint8_t cc1101_write_fifo (const FuriHalSpiBusHandle * handle , const uint8_t * data , uint8_t size ) {
163
167
uint8_t buff_tx [64 ];
164
168
uint8_t buff_rx [64 ];
165
169
buff_tx [0 ] = CC1101_FIFO | CC1101_BURST ;
@@ -170,7 +174,7 @@ uint8_t cc1101_write_fifo(FuriHalSpiBusHandle* handle, const uint8_t* data, uint
170
174
return size ;
171
175
}
172
176
173
- uint8_t cc1101_read_fifo (FuriHalSpiBusHandle * handle , uint8_t * data , uint8_t * size ) {
177
+ uint8_t cc1101_read_fifo (const FuriHalSpiBusHandle * handle , uint8_t * data , uint8_t * size ) {
174
178
uint8_t buff_trx [2 ];
175
179
buff_trx [0 ] = CC1101_FIFO | CC1101_READ | CC1101_BURST ;
176
180
0 commit comments