Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Smoothie by
PauseButton.cpp
00001 #include "libs/Kernel.h" 00002 #include "PauseButton.h" 00003 #include "libs/nuts_bolts.h" 00004 #include "libs/utils.h" 00005 #include <string> 00006 using namespace std; 00007 00008 PauseButton::PauseButton(){} 00009 00010 void PauseButton::on_module_loaded(){ 00011 this->button_state = true; 00012 this->play_state = true; 00013 00014 this->enable = THEKERNEL->config->value( pause_button_enable_checksum )->by_default(false)->as_bool(); 00015 this->button.from_string( THEKERNEL->config->value( pause_button_pin_checksum )->by_default("2.12")->as_string())->as_input(); 00016 00017 THEKERNEL->slow_ticker->attach( 100, this, &PauseButton::button_tick ); 00018 } 00019 00020 //TODO: Make this use InterruptIn 00021 //Check the state of the button and act accordingly 00022 uint32_t PauseButton::button_tick(uint32_t dummy){ 00023 if(!this->enable) return 0; 00024 // If button changed 00025 bool newstate = this->button.get(); 00026 if(this->button_state != newstate){ 00027 this->button_state = newstate; 00028 // If button pressed 00029 if( this->button_state ){ 00030 if( this->play_state ){ 00031 this->play_state = false; 00032 THEKERNEL->pauser->take(); 00033 }else{ 00034 this->play_state = true; 00035 THEKERNEL->pauser->release(); 00036 } 00037 } 00038 } 00039 return 0; 00040 }
Generated on Tue Jul 12 2022 20:09:02 by
1.7.2
