ESPHome
2026.5.0b1
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::as3935_spi
{
5
6
static
const
char
*
const
TAG =
"as3935_spi"
;
7
8
void
SPIAS3935Component::setup
() {
9
this->
spi_setup
();
10
AS3935Component::setup();
11
}
12
13
void
SPIAS3935Component::dump_config
() {
14
AS3935Component::dump_config();
15
LOG_PIN(
" CS Pin: "
, this->
cs_
);
16
}
17
18
void
SPIAS3935Component::write_register
(uint8_t reg, uint8_t mask, uint8_t bits, uint8_t start_pos) {
19
uint8_t write_reg = this->
read_register
(reg);
20
21
write_reg &= (~mask);
22
write_reg |= (bits << start_pos);
23
24
this->
enable
();
25
this->
write_byte
(reg);
26
this->
write_byte
(write_reg);
27
this->
disable
();
28
}
29
30
uint8_t
SPIAS3935Component::read_register
(uint8_t reg) {
31
uint8_t value = 0;
32
this->
enable
();
33
this->
write_byte
(reg |
SPI_READ_M
);
34
value = this->
read_byte
();
35
// According to datsheet, the chip select must be written HIGH, LOW, HIGH
36
// to correctly end the READ command.
37
this->
cs_
->
digital_write
(
true
);
38
this->
cs_
->
digital_write
(
false
);
39
this->
disable
();
40
ESP_LOGV(TAG,
"read_register_: %d"
, value);
41
return
value;
42
}
43
44
}
// namespace esphome::as3935_spi
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:30
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:18
esphome::as3935_spi::SPIAS3935Component::setup
void setup() override
Definition
as3935_spi.cpp:8
esphome::as3935_spi::SPIAS3935Component::dump_config
void dump_config() override
Definition
as3935_spi.cpp:13
esphome::spi::SPIClient::cs_
GPIOPin * cs_
Definition
spi.h:414
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:501
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:438
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:452
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:478
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:503
log.h
esphome::as3935_spi
Definition
as3935_spi.cpp:4
esphome::as3935_spi::SPI_READ_M
@ SPI_READ_M
Definition
as3935_spi.h:9
Generated by
1.12.0