For NTHU_Racing MCU tutorial Learn to use PinInterrupt

Dependencies:   mbed

Committer:
open4416
Date:
Sun Jan 22 05:08:15 2017 +0000
Revision:
0:21fdaaa57d18
Not funtional yet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
open4416 0:21fdaaa57d18 1 #include "mbed.h"
open4416 0:21fdaaa57d18 2
open4416 0:21fdaaa57d18 3 //~~~~~~~~~~~~~~~~~~~~~~~~~~~GPIO registor~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 4 DigitalOut led(D13); //link leg
open4416 0:21fdaaa57d18 5 InterruptIn button(PC_13); //same as "button(USER_BUTTON)"
open4416 0:21fdaaa57d18 6 Serial pc(D1, D0); //Serial reg
open4416 0:21fdaaa57d18 7 //~~~~~~~~~~~~~~~~~~~~~~~~~~~end of GPIO registor~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 8
open4416 0:21fdaaa57d18 9
open4416 0:21fdaaa57d18 10 //~~~~~~~~~~~~~~~~~~~~~~~~~~~Varible registor~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 11 Ticker TT; //call a timer
open4416 0:21fdaaa57d18 12 int count; //numbers of pressed
open4416 0:21fdaaa57d18 13 //~~~~~~~~~~~~~~~~~~~~~~~~~~~end of Varible registor~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 14
open4416 0:21fdaaa57d18 15
open4416 0:21fdaaa57d18 16 //~~~~~~~~~~~~~~~~~~~~~~~~~~~Function registor~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 17 void init_IO(); //initialize IO state
open4416 0:21fdaaa57d18 18 void init_TIMER(); //set TT_main{} rate
open4416 0:21fdaaa57d18 19 void TT_main(); //timebase function rated by TT
open4416 0:21fdaaa57d18 20
open4416 0:21fdaaa57d18 21 void pressed(); //program run when pointed to here
open4416 0:21fdaaa57d18 22 //~~~~~~~~~~~~~~~~~~~~~~~~~~~end of Function registor~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 23
open4416 0:21fdaaa57d18 24
open4416 0:21fdaaa57d18 25 //~~~~~~~~~~~~~~~~~~~~~~~~~~~main funtion~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 26 int main()
open4416 0:21fdaaa57d18 27 {
open4416 0:21fdaaa57d18 28 init_IO(); //initialized value and IRQ(Interrupt request)
open4416 0:21fdaaa57d18 29 init_TIMER(); //start TT_main
open4416 0:21fdaaa57d18 30 pc.baud(9600); //set baud rate
open4416 0:21fdaaa57d18 31
open4416 0:21fdaaa57d18 32 while(1) { //main() loop
open4416 0:21fdaaa57d18 33 }
open4416 0:21fdaaa57d18 34
open4416 0:21fdaaa57d18 35 }
open4416 0:21fdaaa57d18 36 //~~~~~~~~~~~~~~~~~~~~~~~~~~~end of main funtion~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 37
open4416 0:21fdaaa57d18 38
open4416 0:21fdaaa57d18 39 //~~~~~~~~~~~~~~~~~~~~~~~~~~~init_IO funtion~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 40 void init_IO(void) //initialize
open4416 0:21fdaaa57d18 41 {
open4416 0:21fdaaa57d18 42 led = 0;
open4416 0:21fdaaa57d18 43 count = 0;
open4416 0:21fdaaa57d18 44 button.fall(&pressed);
open4416 0:21fdaaa57d18 45 }
open4416 0:21fdaaa57d18 46 //~~~~~~~~~~~~~~~~~~~~~~~~~~~end of init_IO funtion~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 47
open4416 0:21fdaaa57d18 48
open4416 0:21fdaaa57d18 49 //~~~~~~~~~~~~~~~~~~~~~~~~~~~Timebase funtion~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 50 void init_TIMER() //set TT_main{} rate
open4416 0:21fdaaa57d18 51 {
open4416 0:21fdaaa57d18 52 TT.attach_us(&TT_main, 500000); //rate set to 0.5 sec
open4416 0:21fdaaa57d18 53 }
open4416 0:21fdaaa57d18 54
open4416 0:21fdaaa57d18 55 void TT_main() //interrupt function by TT
open4416 0:21fdaaa57d18 56 {
open4416 0:21fdaaa57d18 57 led = !led; //just to make sure program runnung
open4416 0:21fdaaa57d18 58 //print out data
open4416 0:21fdaaa57d18 59 }
open4416 0:21fdaaa57d18 60 //~~~~~~~~~~~~~~~~~~~~~~~~~~~end of Timebase funtion~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 61
open4416 0:21fdaaa57d18 62
open4416 0:21fdaaa57d18 63 //~~~~~~~~~~~~~~~~~~~~~~~~~~~IRQ funtion~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
open4416 0:21fdaaa57d18 64 void pressed() //do these shit when triger
open4416 0:21fdaaa57d18 65 {
open4416 0:21fdaaa57d18 66 //these will be run if pressed() executed
open4416 0:21fdaaa57d18 67 }
open4416 0:21fdaaa57d18 68 //~~~~~~~~~~~~~~~~~~~~~~~~~~~end of IRQ funtion~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//