mirror of
https://github.com/stasenso/Thermometr_pico.git
synced 2026-10-26 01:23:32 +03:00
Add Russian educational comments for DHT22 module
This commit is contained in:
+36
-19
@@ -1,24 +1,41 @@
|
||||
#ifndef DHT22_H
|
||||
#define DHT22_H
|
||||
#ifndef DHT22_H // защита от двойного включения
|
||||
#define DHT22_H // открываем тело заголовка
|
||||
|
||||
#include "hardware/pio.h"
|
||||
#include "pico/types.h"
|
||||
#include "hardware/pio.h" // типы и API PIO
|
||||
#include "pico/types.h" // базовые типы Pico SDK
|
||||
|
||||
typedef enum {
|
||||
DHT22_OK = 0,
|
||||
DHT22_TIMEOUT,
|
||||
DHT22_CHECKSUM_ERROR,
|
||||
DHT22_BUS_STUCK
|
||||
} dht22_status_t;
|
||||
typedef enum { // коды результата чтения
|
||||
DHT22_OK = 0, // чтение успешно
|
||||
DHT22_TIMEOUT, // датчик не ответил вовремя
|
||||
DHT22_CHECKSUM_ERROR, // контрольная сумма не сошлась
|
||||
DHT22_BUS_STUCK // линия данных зажата в нуле
|
||||
} dht22_status_t; // тип статуса DHT22
|
||||
|
||||
typedef struct {
|
||||
PIO pio;
|
||||
uint sm;
|
||||
uint pin;
|
||||
uint offset;
|
||||
} dht22_t;
|
||||
typedef struct { // состояние драйвера датчика
|
||||
PIO pio; // используемый блок PIO
|
||||
uint sm; // номер state machine
|
||||
uint pin; // GPIO линии данных
|
||||
uint offset; // смещение программы в PIO
|
||||
} dht22_t; // дескриптор DHT22
|
||||
|
||||
dht22_status_t dht22_read(dht22_t *dev, int16_t *temperature_x10, uint16_t *humidity_x10);
|
||||
void dht22_init(dht22_t *dev, PIO pio, uint sm, uint pin);
|
||||
/*
|
||||
* Инициализирует драйвер DHT22.
|
||||
* На вход принимает:
|
||||
* dev - структуру, куда сохраняется состояние драйвера;
|
||||
* pio - блок PIO, который будет выполнять программу чтения;
|
||||
* sm - номер state machine внутри выбранного PIO;
|
||||
* pin - GPIO, к которому подключена линия данных датчика.
|
||||
* Ничего не возвращает.
|
||||
*/
|
||||
void dht22_init(dht22_t *dev, PIO pio, uint sm, uint pin); // инициализирует PIO и GPIO
|
||||
/*
|
||||
* Выполняет одно чтение DHT22.
|
||||
* На вход принимает:
|
||||
* dev - ранее инициализированный дескриптор датчика;
|
||||
* temperature_x10 - указатель, куда будет записана температура в десятых долях градуса;
|
||||
* humidity_x10 - указатель, куда будет записана влажность в десятых долях процента.
|
||||
* Возвращает код результата: успех, таймаут, ошибка контрольной суммы или залипшая шина.
|
||||
*/
|
||||
dht22_status_t dht22_read(dht22_t *dev, int16_t *temperature_x10, uint16_t *humidity_x10); // читает температуру и влажность x10
|
||||
|
||||
#endif
|
||||
#endif // DHT22_H
|
||||
|
||||
Reference in New Issue
Block a user