kopia lustrzana https://github.com/SP8EBC/ParaTNC
humidity sensor working with ms5611 and dallas on the same time
rodzic
12dc1cf9b6
commit
851919e1d7
Plik diff jest za duży
Load Diff
|
@ -24,6 +24,7 @@
|
|||
#define DHT22_STATE_DATA_DECD 13
|
||||
#define DHT22_STATE_TIMEOUT 14
|
||||
#define DHT22_STATE_DONE 15
|
||||
#define DHT22_STATE_COMMS_IRQ 16
|
||||
|
||||
typedef enum dht22QF {
|
||||
DHT22_QF_FULL,
|
||||
|
|
|
@ -60,8 +60,9 @@ void dht22_init(void) {
|
|||
|
||||
void dht22_comm(dht22Values *in) {
|
||||
|
||||
dht22_init();
|
||||
|
||||
dht22State = DHT22_STATE_COMMS;
|
||||
currentBit = 0;
|
||||
|
||||
GPIO_Init(DHT22_PIN_PORT,&PORT_out);
|
||||
GPIO_SetBits(DHT22_PIN_PORT, DHT22_PIN_PIN);
|
||||
|
@ -100,6 +101,8 @@ void dht22_comm(dht22Values *in) {
|
|||
EXTI->IMR |= 1 << 4;
|
||||
NVIC_EnableIRQ(EXTI4_IRQn);
|
||||
|
||||
dht22State = DHT22_STATE_COMMS_IRQ;
|
||||
|
||||
delay_5us = DHT22_INTERRUPT_DURATION;
|
||||
return;
|
||||
/*
|
||||
|
@ -110,16 +113,20 @@ void dht22_comm(dht22Values *in) {
|
|||
|
||||
void EXTI4_IRQHandler(void) {
|
||||
EXTI->PR |= EXTI_PR_PR4;
|
||||
bitsDuration[currentBit++] = DHT22_INTERRUPT_DURATION - delay_5us;
|
||||
delay_5us = DHT22_INTERRUPT_DURATION;
|
||||
if (currentBit >= 41) {
|
||||
EXTI_Init(&exti_disable);
|
||||
NVIC_DisableIRQ(EXTI4_IRQn);
|
||||
currentBit = 0;
|
||||
GPIO_Init(DHT22_PIN_PORT,&PORT_out);
|
||||
GPIO_SetBits(DHT22_PIN_PORT, DHT22_PIN_PIN);
|
||||
dht22State = DHT22_STATE_DATA_RDY;
|
||||
DallasDeConfigTimer();
|
||||
if (dht22State == DHT22_STATE_COMMS_IRQ) {
|
||||
bitsDuration[currentBit++] = DHT22_INTERRUPT_DURATION - delay_5us;
|
||||
delay_5us = DHT22_INTERRUPT_DURATION;
|
||||
if (currentBit >= 41) {
|
||||
EXTI->FTSR &= (0xFFFFFFFF ^ (1 << 4));
|
||||
EXTI->IMR &= (0xFFFFFFFF ^ (1 << 4));
|
||||
|
||||
NVIC_DisableIRQ(EXTI4_IRQn);
|
||||
currentBit = 0;
|
||||
GPIO_Init(DHT22_PIN_PORT,&PORT_out);
|
||||
GPIO_SetBits(DHT22_PIN_PORT, DHT22_PIN_PIN);
|
||||
dht22State = DHT22_STATE_DATA_RDY;
|
||||
DallasDeConfigTimer();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue