Button_Control
Button_Control.cpp
- Committer:
- nguyenmanhthao996tn
- Date:
- 2017-09-30
- Revision:
- 0:ab95649b3f54
File content as of revision 0:ab95649b3f54:
#include "Button_Control.h" Button::Button(void) { Button(BUTTON_0_PIN, BUTTON_1_PIN, BUTTON_2_PIN); } Button::Button(PinName Button0, PinName Button1, PinName Button2) { this->Btn0 = new InterruptIn(Button0); this->Btn1 = new InterruptIn(Button1); this->Btn2 = new InterruptIn(Button2); memset(&flags, 0, sizeof(ButtonFlagsAddress)); } void Button::SetBtn0Callback(void (*btn0_Callback)(void)) { this->Btn0->rise(btn0_Callback); } void Button::SetBtn0Flag(bool *btn0_Flag) { flags._btn0_Flag = btn0_Flag; *btn0_Flag = false; this->Btn0->rise(btn0UpdateFlag); } void Button::SetBtn1Callback(void (*btn1_Callback)(void)) { this->Btn1->rise(btn1_Callback); } void Button::SetBtn1Flag(bool *btn1_Flag) { flags._btn1_Flag = btn1_Flag; *btn1_Flag = false; this->Btn1->rise(btn1UpdateFlag); } void Button::SetBtn2Callback(void (*btn2_Callback)(void)) { this->Btn2->rise(btn2_Callback); } void Button::SetBtn2Flag(bool *btn2_Flag) { flags._btn2_Flag = btn2_Flag; *btn2_Flag = false; this->Btn2->rise(btn2UpdateFlag); } void btn0UpdateFlag(void) { if (flags._btn0_Flag != NULL) { *(flags._btn0_Flag) = true; } } void btn1UpdateFlag(void) { if (flags._btn1_Flag != NULL) { *(flags._btn1_Flag) = true; } } void btn2UpdateFlag(void) { if (flags._btn2_Flag != NULL) { *(flags._btn2_Flag) = true; } }