[FL-85][FL-446][FL-720] Dallas key blanks and OneWire lib rework (#313)

* sepate one wire class
* TM2004 writer
* app mode write ds1990
* test another blanks protocol
* new ibutton slave
* one wire states
* tim1 capture compare and update interrupts
* interrupt mgr, new timers IRQ
* discard HAL_TIM_PeriodElapsedCallback from main
* add exti_14 line
* add external interrupt callback
* use int mgr in input
* better interrupt managment
* add interrupt callback enable and disable fns
* properly init app
* changed timings
* rename one wire classes
* use new owb classes
* properly remove interrupts
* new blanks writer
* remove unused tests
* new core includes
* extern c guard
* fix api_interrupt_remove usage
* remove debug info, new way to detect blanks writing
* remove copy constructor
* change keys template
* fix app sources recipe
This commit is contained in:
DrZlo13
2021-01-28 22:30:31 +10:00
committed by GitHub
parent a7951ade69
commit cf1c8fb223
31 changed files with 1099 additions and 869 deletions

View File

@@ -18,6 +18,8 @@ static InputState input_state = {
false,
};
static void exti_input_callback(void* _pin, void* _ctx);
void input_task(void* p) {
uint32_t state_bits = 0;
uint8_t debounce_counters[INPUT_COUNT];
@@ -38,6 +40,8 @@ void input_task(void* p) {
furi_record_create("input_state", &input_state_record);
furi_record_create("input_events", &input_events_record);
api_interrupt_add(exti_input_callback, InterruptTypeExternalInterrupt, NULL);
// we ready to work
initialized = true;
@@ -103,7 +107,10 @@ void input_task(void* p) {
}
}
void HAL_GPIO_EXTI_Callback(uint16_t pin) {
static void exti_input_callback(void* _pin, void* _ctx) {
// interrupt manager get us pin constant, so...
uint32_t pin = (uint32_t)_pin;
#ifdef APP_NFC
if(pin == NFC_IRQ_Pin) {
nfc_isr();
@@ -121,4 +128,4 @@ void HAL_GPIO_EXTI_Callback(uint16_t pin) {
if(!initialized) return;
signal_event(&event);
}
}