Go to the documentation of this file.
38 #include "mikrosdk_version.h"
41 #if mikroSDK_GET_VERSION < 20800ul
42 #include "rcu_delays.h"
48 #include "drv_digital_out.h"
49 #include "drv_digital_in.h"
50 #include "drv_spi_master.h"
64 #define THUNDER_MAP_MIKROBUS( cfg, mikrobus ) \
65 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
66 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
67 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
68 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
69 cfg.irq = MIKROBUS( mikrobus, MIKROBUS_INT )
80 #define THUNDER_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
81 #define THUNDER_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
87 #define THUNDER_OK 0x00
88 #define THUNDER_ERROR 0xFF
95 #define THUNDER_DEV_ADDR_0 0x00
96 #define THUNDER_DEV_ADDR_1 0x01
97 #define THUNDER_DEV_ADDR_2 0x02
98 #define THUNDER_DEV_ADDR_3 0x03
105 #define THUNDER_REG_CONFIG_0 0x00
106 #define THUNDER_REG_CONFIG_1 0x01
107 #define THUNDER_REG_CONFIG_2 0x02
108 #define THUNDER_REG_CONFIG_3_INTERR 0x03
109 #define THUNDER_REG_ENERGY_LIGHTNING_LSBYTE 0x04
110 #define THUNDER_REG_ENERGY_LIGHTNING_MSBYTE 0x05
111 #define THUNDER_REG_ENERGY_LIGHTNING_MMSBYTE 0x06
112 #define THUNDER_REG_DISTANCE 0x07
113 #define THUNDER_REG_INTERR_PIN_CONFIG 0x08
114 #define THUNDER_REG_LDLUT_1 0x09
115 #define THUNDER_REG_LDLUT_2 0x0A
116 #define THUNDER_REG_LDLUT_3 0x0B
117 #define THUNDER_REG_LDLUT_4 0x0C
118 #define THUNDER_REG_LDLUT_5 0x0D
119 #define THUNDER_REG_LDLUT_6 0x0E
120 #define THUNDER_REG_LDLUT_7 0x0F
121 #define THUNDER_REG_LDLUT_8 0x10
122 #define THUNDER_REG_LDLUT_9 0x11
123 #define THUNDER_REG_LDLUT_10 0x12
124 #define THUNDER_REG_LDLUT_11 0x13
125 #define THUNDER_REG_LDLUT_12 0x14
126 #define THUNDER_REG_LDLUT_13 0x15
127 #define THUNDER_REG_LDLUT_14 0x16
128 #define THUNDER_REG_LDLUT_15 0x17
129 #define THUNDER_REG_LDLUT_16 0x18
130 #define THUNDER_REG_LDLUT_17 0x19
131 #define THUNDER_REG_LDLUT_18 0x1A
132 #define THUNDER_REG_LDLUT_19 0x1B
133 #define THUNDER_REG_LDLUT_20 0x1C
134 #define THUNDER_REG_LDLUT_21 0x1D
135 #define THUNDER_REG_LDLUT_22 0x1E
136 #define THUNDER_REG_LDLUT_23 0x1F
137 #define THUNDER_REG_LDLUT_24 0x20
138 #define THUNDER_REG_LDLUT_25 0x21
139 #define THUNDER_REG_LDLUT_26 0x22
140 #define THUNDER_REG_LDLUT_27 0x23
141 #define THUNDER_REG_LDLUT_28 0x24
142 #define THUNDER_REG_LDLUT_29 0x25
143 #define THUNDER_REG_LDLUT_30 0x26
144 #define THUNDER_REG_LDLUT_31 0x27
145 #define THUNDER_REG_LDLUT_32 0x28
146 #define THUNDER_REG_LDLUT_33 0x29
147 #define THUNDER_REG_LDLUT_34 0x2A
148 #define THUNDER_REG_LDLUT_35 0x2B
149 #define THUNDER_REG_LDLUT_36 0x2C
150 #define THUNDER_REG_LDLUT_37 0x2D
151 #define THUNDER_REG_LDLUT_38 0x2E
152 #define THUNDER_REG_LDLUT_39 0x2F
153 #define THUNDER_REG_LDLUT_40 0x30
154 #define THUNDER_REG_LDLUT_41 0x31
155 #define THUNDER_REG_LDLUT_42 0x32
156 #define THUNDER_REG_RESET 0x3C
157 #define THUNDER_REG_CALIB 0x3D
164 #define THUNDER_INDOOR 0x24
165 #define THUNDER_OUTDOOR 0x1C
166 #define THUNDER_NORMAL_MODE 0x00
167 #define THUNDER_POWER_DOWN 0x01
174 #define THUNDER_DEFAULT_NOISE_FLOOR_LVL 0x20
175 #define THUNDER_DEFAULT_WDG_THRESHOLD 0x02
182 #define THUNDER_CLEAR_STAT 0xC0
183 #define THUNDER_1_LIGHTNING 0x80
184 #define THUNDER_5_LIGHTNINGS 0x90
185 #define THUNDER_9_LIGHTNINGS 0xA0
186 #define THUNDER_16_LIGHTNINGS 0xB0
187 #define THUNDER_DEFAULT_SREJ 0x82
194 #define THUNDER_DIV_RATIO_16 0x00
195 #define THUNDER_DIV_RATIO_32 0x40
196 #define THUNDER_DIV_RATIO_64 0x80
197 #define THUNDER_DIV_RATIO_128 0xC0
198 #define THUNDER_MASK_DISTURBER 0x20
199 #define THUNDER_UNMASK_DISTURBER 0x00
200 #define THUNDER_NO_INTERR 0x00
201 #define THUNDER_NOISE_LEVEL_INTERR 0x01
202 #define THUNDER_DISTURBER_INTERR 0x04
203 #define THUNDER_LIGHTNING_INTERR 0x08
210 #define THUNDER_LCO_ON_IRQ_PIN 0x80
211 #define THUNDER_SRCO_ON_IRQ_PIN 0x40
212 #define THUNDER_TRCO_ON_IRQ_PIN 0x20
213 #define THUNDER_NO_DISPLAY_ON_IRQ_PIN 0x00
214 #define THUNDER_DEFAULT_TUNE_CAP 0x00
221 #define THUNDER_RESET_COMM 0x00
222 #define THUNDER_CALIB_RCO_COMM 0x01
408 #endif // _THUNDER_H_
err_t thunder_generic_write(thunder_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Generic write function.
digital_in_t irq
Definition: thunder.h:238
This file contains SPI specific macros, functions, etc.
uint32_t spi_speed
Definition: thunder.h:261
spi_master_mode_t spi_mode
Definition: thunder.h:262
err_t thunder_read_reg(thunder_t *ctx, uint8_t reg, uint8_t *data_out)
Read reg function.
pin_name_t mosi
Definition: thunder.h:253
pin_name_t irq
Definition: thunder.h:258
spi_master_t spi
Definition: thunder.h:241
void thunder_get_storm_info(thunder_t *ctx, uint32_t *energy_out, uint8_t *distance_out)
Storm Information Get function.
void thunder_cfg_setup(thunder_cfg_t *cfg)
Config Object Initialization function.
Click configuration structure definition.
Definition: thunder.h:250
void thunder_default_cfg(thunder_t *ctx)
Click Default Configuration function.
pin_name_t miso
Definition: thunder.h:252
spi_master_chip_select_polarity_t cs_polarity
Definition: thunder.h:263
err_t thunder_write_reg(thunder_t *ctx, uint8_t reg, uint8_t data_in)
Write reg function.
uint8_t thunder_check_int(thunder_t *ctx)
Interrupt Check function.
err_t thunder_init(thunder_t *ctx, thunder_cfg_t *cfg)
Initialization function.
void thunder_send_command(thunder_t *ctx, uint8_t command)
Command Send function.
pin_name_t cs
Definition: thunder.h:255
err_t thunder_generic_read(thunder_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Generic read function.
pin_name_t sck
Definition: thunder.h:254
pin_name_t chip_select
Definition: thunder.h:242
Click ctx object definition.
Definition: thunder.h:236
uint8_t thunder_check_irq_pin(thunder_t *ctx)
IRQ Pin Check function.