Yiming Zhang
/
botton
mid
main.cpp
- Committer:
- sjuzyz
- Date:
- 2020-04-27
- Revision:
- 0:9a525a0d1d3f
File content as of revision 0:9a525a0d1d3f:
#include "mbed.h" #include "N5110.h" N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); InterruptIn buttonL(PTB18); InterruptIn buttonR(PTB3); // g_ prefix makes it easier to distinguish it as global volatile int g_buttonL_flag = 0; volatile int g_buttonR_flag = 0; // Button L&R interrupt service routine void buttonL_isr(); void buttonR_isr(); int main() { lcd.init(); // Button L&R is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister buttonL.mode(PullDown); buttonR.mode(PullDown); // It will return 0 by default and a 1 when pressed i.e. cause a rising edge buttonL.rise(&buttonL_isr); buttonR.rise(&buttonR_isr); int p=20, q=3; //位置 int a=2, b=1; //步长 while(1) { lcd.clear(); lcd.printString("Hello!",p,q); if (g_buttonL_flag) { p=p-a; q=q-b; g_buttonL_flag = 0; // if it has, clear the flag } if (g_buttonR_flag) { p=p+a; q=q+b; g_buttonR_flag = 0; // if it has, clear the flag } lcd.refresh(); wait(0.1); } } void buttonL_isr() { g_buttonL_flag = 1; // set flag in ISR } void buttonR_isr() { g_buttonR_flag = 1; // set flag in ISR }