ESPHome
2025.5.0
Loading...
Searching...
No Matches
esphome
components
as3935_spi
as3935_spi.cpp
Go to the documentation of this file.
1
#include "
as3935_spi.h
"
2
#include "
esphome/core/log.h
"
3
4
namespace
esphome
{
5
namespace
as3935_spi {
6
7
static
const
char
*
const
TAG =
"as3935_spi"
;
8
9
void
SPIAS3935Component::setup
() {
10
ESP_LOGI(TAG,
"SPIAS3935Component setup started!"
);
11
this->
spi_setup
();
12
ESP_LOGI(TAG,
"SPI setup finished!"
);
13
AS3935Component::setup();
14
}
15
16
void
SPIAS3935Component::dump_config
() {
17
AS3935Component::dump_config();
18
LOG_PIN(
" CS Pin: "
, this->
cs_
);
19
}
20
21
void
SPIAS3935Component::write_register
(uint8_t reg, uint8_t mask, uint8_t bits, uint8_t start_pos) {
22
uint8_t write_reg = this->
read_register
(reg);
23
24
write_reg &= (~mask);
25
write_reg |= (bits << start_pos);
26
27
this->
enable
();
28
this->
write_byte
(reg);
29
this->
write_byte
(write_reg);
30
this->
disable
();
31
}
32
33
uint8_t
SPIAS3935Component::read_register
(uint8_t reg) {
34
uint8_t value = 0;
35
this->
enable
();
36
this->
write_byte
(reg |
SPI_READ_M
);
37
value = this->
read_byte
();
38
// According to datsheet, the chip select must be written HIGH, LOW, HIGH
39
// to correctly end the READ command.
40
this->
cs_
->
digital_write
(
true
);
41
this->
cs_
->
digital_write
(
false
);
42
this->
disable
();
43
ESP_LOGV(TAG,
"read_register_: %d"
, value);
44
return
value;
45
}
46
47
}
// namespace as3935_spi
48
}
// namespace esphome
as3935_spi.h
esphome::GPIOPin::digital_write
virtual void digital_write(bool value)=0
esphome::as3935_spi::SPIAS3935Component::read_register
uint8_t read_register(uint8_t reg) override
Definition
as3935_spi.cpp:33
esphome::as3935_spi::SPIAS3935Component::write_register
void write_register(uint8_t reg, uint8_t mask, uint8_t bits, uint8_t start_position) override
Definition
as3935_spi.cpp:21
esphome::as3935_spi::SPIAS3935Component::setup
void setup() override
Definition
as3935_spi.cpp:9
esphome::as3935_spi::SPIAS3935Component::dump_config
void dump_config() override
Definition
as3935_spi.cpp:16
esphome::spi::SPIClient::cs_
GPIOPin * cs_
Definition
spi.h:408
esphome::spi::SPIDevice< spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_2MHZ >::enable
void enable()
Definition
spi.h:493
esphome::spi::SPIDevice< spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_2MHZ >::spi_setup
void spi_setup() override
Definition
spi.h:430
esphome::spi::SPIDevice< spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_2MHZ >::read_byte
uint8_t read_byte()
Definition
spi.h:444
esphome::spi::SPIDevice< spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_2MHZ >::write_byte
void write_byte(uint8_t data)
Definition
spi.h:470
esphome::spi::SPIDevice< spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_2MHZ >::disable
void disable()
Definition
spi.h:495
log.h
esphome::as3935_spi::SPI_READ_M
@ SPI_READ_M
Definition
as3935_spi.h:12
esphome
Providing packet encoding functions for exchanging data with a remote host.
Definition
a01nyub.cpp:7
Generated by
1.12.0