Пт апр 19, 2019 18:19:05
#include <avr/wdt.h>
volatile uint8_t &portd = PIND; //interrupts port
const uint8_t pinint0 = 1 << INT0; //pin INT0
void soft_reset(const uint8_t wdt_prescale, const uint8_t &port = 1, const uint8_t pin = 1){
wdt_enable(wdt_prescale);
while(port & pin);
wdt_reset();
wdt_disable();
}
void isPIRHigh(const uint8_t &port, const uint8_t pin){
soft_reset(WDTO_8S, ~port, pin); //finish when PD0 high
}
void isPIRLow(const uint8_t &port, const uint8_t pin){
soft_reset(WDTO_8S, port, pin); //finish when PD0 low
}
void isPIRAlive(){
isPIRHigh(portd, pinint0);
isPIRLow(portd, pinint0);
}
void setup(){isPIRAlive();}
Пт апр 19, 2019 19:21:38
Пт апр 19, 2019 19:29:12
Пт апр 19, 2019 21:48:43
Пт апр 19, 2019 22:29:00
Сб апр 20, 2019 06:17:35
Сб апр 20, 2019 06:32:58
Сб апр 20, 2019 09:19:52
В ней C++.alex68md писал(а):точно! спасибо в чисто С нету. но в ардуино иде есть
Сб апр 20, 2019 22:51:22
Вс апр 21, 2019 05:12:23
Вс апр 21, 2019 08:28:32
Вс апр 21, 2019 10:51:00
Вс апр 21, 2019 15:48:56
Вс апр 21, 2019 16:44:13
Вс апр 21, 2019 20:28:04
Пн апр 22, 2019 01:30:22
Пн апр 22, 2019 08:48:36
Пн апр 22, 2019 10:45:31
Пн апр 22, 2019 11:14:32
void wait_reset(volatile uint8_t *port){
if(port == NULL) {
// обрабатываем "дефолтное" значение
} else {
// обрабатываем состояние порта
while(*port == 0){
// ждем, пока не установится какой-то там уровень
}
}
}
Пн апр 22, 2019 13:09:53