RCM — ESP32 Room Controller
WT32-ETH01 firmware
Loading...
Searching...
No Matches
pcf8574.h File Reference

Драйвер I2C-расширителя портов PCF8574T. More...

#include <stdbool.h>
#include <stdint.h>
#include "esp_err.h"

Go to the source code of this file.

Functions

esp_err_t pcf8574_init (void)
 Инициализирует шину I2C и устройство PCF8574T.
 
esp_err_t pcf8574_write (uint8_t value)
 Записывает байт в порт расширителя (состояние P0..P7).
 
esp_err_t pcf8574_read (uint8_t *value)
 Читает текущее состояние порта P0..P7.
 
esp_err_t pcf8574_set_pin (uint8_t pin, bool level)
 Устанавливает уровень одного пина (0..7).
 
esp_err_t pcf8574_get_pin (uint8_t pin, bool *level)
 Читает уровень одного пина (0..7).
 
esp_err_t pcf8574_led_chase_start (void)
 Запускает задачу «бегущий огонь» на светодиодах P0..P2.
 

Detailed Description

Драйвер I2C-расширителя портов PCF8574T.

Definition in file pcf8574.h.

Function Documentation

◆ pcf8574_get_pin()

esp_err_t pcf8574_get_pin ( uint8_t pin,
bool * level )

Читает уровень одного пина (0..7).

Definition at line 128 of file pcf8574.c.

References pcf8574_read(), and TAG.

◆ pcf8574_init()

esp_err_t pcf8574_init ( void )

Инициализирует шину I2C и устройство PCF8574T.

Returns
ESP_OK при успешной инициализации и ответе на шине.

Definition at line 56 of file pcf8574.c.

References I2C_FREQ_HZ, I2C_PORT, I2C_SCL_GPIO, I2C_SDA_GPIO, PCF8574_I2C_ADDR, pcf8574_read_raw(), pcf8574_write_raw(), s_i2c_bus, s_initialized, s_pcf8574_dev, s_port_shadow, and TAG.

◆ pcf8574_led_chase_start()

esp_err_t pcf8574_led_chase_start ( void )

Запускает задачу «бегущий огонь» на светодиодах P0..P2.

Светодиоды подключены к GND: бит 1 — включён, бит 0 — выключен.

Returns
ESP_OK при успешном создании задачи.

Definition at line 158 of file pcf8574.c.

References LED_CHASE_PIN_COUNT, led_chase_task(), s_initialized, and TAG.

◆ pcf8574_read()

esp_err_t pcf8574_read ( uint8_t * value)

Читает текущее состояние порта P0..P7.

Definition at line 104 of file pcf8574.c.

References pcf8574_read_raw(), s_initialized, and TAG.

Referenced by pcf8574_get_pin().

◆ pcf8574_set_pin()

esp_err_t pcf8574_set_pin ( uint8_t pin,
bool level )

Устанавливает уровень одного пина (0..7).

Для PCF8574: 0 — выход в низком уровне, 1 — вход (линия через pull-up).

Definition at line 112 of file pcf8574.c.

References pcf8574_write(), s_port_shadow, and TAG.

◆ pcf8574_write()

esp_err_t pcf8574_write ( uint8_t value)

Записывает байт в порт расширителя (состояние P0..P7).

Definition at line 93 of file pcf8574.c.

References pcf8574_write_raw(), s_initialized, s_port_shadow, and TAG.

Referenced by led_chase_task(), and pcf8574_set_pin().