mid

Dependencies:   mbed

Committer:
sjuzyz
Date:
Mon Apr 27 12:01:16 2020 +0000
Revision:
0:9a525a0d1d3f
mid

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sjuzyz 0:9a525a0d1d3f 1 #include "mbed.h"
sjuzyz 0:9a525a0d1d3f 2 #include "N5110.h"
sjuzyz 0:9a525a0d1d3f 3
sjuzyz 0:9a525a0d1d3f 4 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
sjuzyz 0:9a525a0d1d3f 5
sjuzyz 0:9a525a0d1d3f 6 InterruptIn buttonL(PTB18);
sjuzyz 0:9a525a0d1d3f 7 InterruptIn buttonR(PTB3);
sjuzyz 0:9a525a0d1d3f 8
sjuzyz 0:9a525a0d1d3f 9 // g_ prefix makes it easier to distinguish it as global
sjuzyz 0:9a525a0d1d3f 10 volatile int g_buttonL_flag = 0;
sjuzyz 0:9a525a0d1d3f 11 volatile int g_buttonR_flag = 0;
sjuzyz 0:9a525a0d1d3f 12 // Button L&R interrupt service routine
sjuzyz 0:9a525a0d1d3f 13 void buttonL_isr();
sjuzyz 0:9a525a0d1d3f 14 void buttonR_isr();
sjuzyz 0:9a525a0d1d3f 15
sjuzyz 0:9a525a0d1d3f 16 int main() {
sjuzyz 0:9a525a0d1d3f 17
sjuzyz 0:9a525a0d1d3f 18 lcd.init();
sjuzyz 0:9a525a0d1d3f 19
sjuzyz 0:9a525a0d1d3f 20 // Button L&R is connected between the pin and 3.3 V, we therefore need to turn on the internal pull-down resister
sjuzyz 0:9a525a0d1d3f 21 buttonL.mode(PullDown);
sjuzyz 0:9a525a0d1d3f 22 buttonR.mode(PullDown);
sjuzyz 0:9a525a0d1d3f 23 // It will return 0 by default and a 1 when pressed i.e. cause a rising edge
sjuzyz 0:9a525a0d1d3f 24 buttonL.rise(&buttonL_isr);
sjuzyz 0:9a525a0d1d3f 25 buttonR.rise(&buttonR_isr);
sjuzyz 0:9a525a0d1d3f 26
sjuzyz 0:9a525a0d1d3f 27 int p=20, q=3; //位置
sjuzyz 0:9a525a0d1d3f 28 int a=2, b=1; //步长
sjuzyz 0:9a525a0d1d3f 29
sjuzyz 0:9a525a0d1d3f 30 while(1) {
sjuzyz 0:9a525a0d1d3f 31
sjuzyz 0:9a525a0d1d3f 32 lcd.clear();
sjuzyz 0:9a525a0d1d3f 33 lcd.printString("Hello!",p,q);
sjuzyz 0:9a525a0d1d3f 34
sjuzyz 0:9a525a0d1d3f 35 if (g_buttonL_flag) {
sjuzyz 0:9a525a0d1d3f 36 p=p-a;
sjuzyz 0:9a525a0d1d3f 37 q=q-b;
sjuzyz 0:9a525a0d1d3f 38 g_buttonL_flag = 0; // if it has, clear the flag
sjuzyz 0:9a525a0d1d3f 39 }
sjuzyz 0:9a525a0d1d3f 40
sjuzyz 0:9a525a0d1d3f 41 if (g_buttonR_flag) {
sjuzyz 0:9a525a0d1d3f 42 p=p+a;
sjuzyz 0:9a525a0d1d3f 43 q=q+b;
sjuzyz 0:9a525a0d1d3f 44 g_buttonR_flag = 0; // if it has, clear the flag
sjuzyz 0:9a525a0d1d3f 45 }
sjuzyz 0:9a525a0d1d3f 46
sjuzyz 0:9a525a0d1d3f 47 lcd.refresh();
sjuzyz 0:9a525a0d1d3f 48 wait(0.1);
sjuzyz 0:9a525a0d1d3f 49 }
sjuzyz 0:9a525a0d1d3f 50
sjuzyz 0:9a525a0d1d3f 51 }
sjuzyz 0:9a525a0d1d3f 52
sjuzyz 0:9a525a0d1d3f 53 void buttonL_isr()
sjuzyz 0:9a525a0d1d3f 54 {
sjuzyz 0:9a525a0d1d3f 55 g_buttonL_flag = 1; // set flag in ISR
sjuzyz 0:9a525a0d1d3f 56 }
sjuzyz 0:9a525a0d1d3f 57
sjuzyz 0:9a525a0d1d3f 58 void buttonR_isr()
sjuzyz 0:9a525a0d1d3f 59 {
sjuzyz 0:9a525a0d1d3f 60 g_buttonR_flag = 1; // set flag in ISR
sjuzyz 0:9a525a0d1d3f 61 }