diff --git a/src/buttons.c b/src/buttons.c deleted file mode 100644 --- a/src/buttons.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * buttons.c - * - * Created on: Oct 22, 2016 - * Author: Nicholas Orlando - */ - -#include "stm32f3xx_hal.h" -#include "stm32f3xx.h" -#include "gpio.h" -#include "ssd1306.h" -#include "buttons.h" -#include - - -uint32_t last_button_debounce_time = 0; // the system time at which the button values were last checked -uint32_t debounce_resolution = 5; // period in which to check pin state in milliseconds -float filter_fraction = 0.2; // a number between 0 and 1, which adjusts the heaviness of the filter. - // 0 = never changes and 1 = no filter at all. -uint8_t l_thresh = 20; //lower threshold for when then button is considered pressed vs not pressed. -uint8_t u_thresh = 80; //upper threshold for when then button is considered pressed vs not pressed. - -uint8_t temp_counter = 0; // temporary counter for testing purposes - -float sw_btn_avg = 0; // some sort of running average -uint8_t sw_btn_state = NOT_PRESSED; // the state of the pin after filtering -uint8_t sw_btn_old_state = NOT_PRESSED; // the state of the pin after filtering - -void freaking_debounce(void) -{ - if(HAL_GetTick() - last_button_debounce_time > debounce_resolution) - { - char buffer[256]; // needed for writing stuff to screen - - //averaging to filter button presses - if(HAL_GPIO_ReadPin(SW_BTN) == GPIO_PIN_RESET) - { - sw_btn_avg = sw_btn_avg + filter_fraction * (100 - sw_btn_avg); - } - else - { - sw_btn_avg = sw_btn_avg + filter_fraction * (0 - sw_btn_avg); - } - - // check to see if the btn average value has crossed a threshold - if(sw_btn_avg < l_thresh) - { - sw_btn_state = NOT_PRESSED; -// snprintf(buffer, 256, "NOT_PRESSED"); -// ssd1306_drawstring(buffer, 1, 0); - } - if(sw_btn_avg > u_thresh) - { - sw_btn_state = PRESSED; -// snprintf(buffer, 256, "PRESSED "); -// ssd1306_drawstring(buffer, 1, 0); - } - - // do something when state has changed - if((sw_btn_state == PRESSED) && (sw_btn_old_state == NOT_PRESSED)) - { -// temp_counter++; -// snprintf(buffer, 256, "%i", temp_counter); -// ssd1306_drawstring(buffer, 1, 0); - } - - -// snprintf(buffer, 256, "sw-btn-avg: %.1f", sw_btn_avg); -// ssd1306_drawstring(buffer, 2, 0); - - // save previous button states - sw_btn_old_state = sw_btn_state; - - last_button_debounce_time = HAL_GetTick(); - } -}