add iot example

This commit is contained in:
Siwat Sirichai 2023-01-23 11:11:54 +07:00
parent ea647bc465
commit dce0beceec
8 changed files with 180 additions and 0 deletions

View file

@ -0,0 +1,51 @@
#include <ESPMegaPRO.h>
// Inputs
const int DEBOUNCE_TIME_MS = 50;
const int virtual_interrupt_pins[16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
int virtual_interupt_state[16];
unsigned long virtual_interupt_timer[16];
// Outputs
const int pwm_pins[16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
int pwm_states[16];
int pwm_values[16];
// Forward declaration
void virtual_interrupt_loop();
void virtual_interrupt_callback(int pin, int state);
void setup()
{
ESPMega_begin();
}
void loop()
{
ESPMega_loop();
}
void virtual_interrupt_callback(int pin, int state)
{
}
void virtual_interrupt_loop()
{
for (int i = 0; i < 16; i++)
{
int current_pin_value = ESPMega_digitalRead(virtual_interrupt_pins[i]);
if (virtual_interupt_state[i] != current_pin_value)
{
if (millis() - virtual_interupt_timer[i] > DEBOUNCE_TIME_MS)
{
virtual_interupt_state[i] = current_pin_value;
virtual_interrupt_callback(i, current_pin_value);
}
}
else
{
virtual_interupt_timer[i] = millis();
}
yield();
}
}