ジャパンオープン用のメインプログラム

Dependencies:   mbed AQM1602 HMC6352 PID

Committer:
lilac0112_1
Date:
Sun Mar 27 13:04:39 2016 +0000
Revision:
38:67bc78f3c0ab
Parent:
0:ea35c18c85fc
JapanSoccerOpen2016 CatPot Program(main)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lilac0112_1 0:ea35c18c85fc 1 #include "mbed.h"
lilac0112_1 0:ea35c18c85fc 2 #include "extern.h"
lilac0112_1 0:ea35c18c85fc 3
lilac0112_1 0:ea35c18c85fc 4
lilac0112_1 0:ea35c18c85fc 5 uint8_t _samples[4]={0};
lilac0112_1 0:ea35c18c85fc 6 uint8_t _output[4]={0};
lilac0112_1 0:ea35c18c85fc 7 uint8_t _output_last[4]={0};
lilac0112_1 0:ea35c18c85fc 8 uint8_t _rising_flag[4]={0};
lilac0112_1 0:ea35c18c85fc 9
lilac0112_1 0:ea35c18c85fc 10 void Sw_sample(void) {
lilac0112_1 0:ea35c18c85fc 11 int i;
lilac0112_1 0:ea35c18c85fc 12 for(i=0; i<4; i++){
lilac0112_1 0:ea35c18c85fc 13 _output_last[i] = _output[i];
lilac0112_1 0:ea35c18c85fc 14 _output[i] = Sw[i].read();
lilac0112_1 0:ea35c18c85fc 15 if (!_output[i] && _output_last[i])
lilac0112_1 0:ea35c18c85fc 16 {
lilac0112_1 0:ea35c18c85fc 17 _rising_flag[i]++;
lilac0112_1 0:ea35c18c85fc 18 }
lilac0112_1 0:ea35c18c85fc 19 }
lilac0112_1 0:ea35c18c85fc 20 //pc.printf("food%d\r\n",_output_last[0]);
lilac0112_1 0:ea35c18c85fc 21 }
lilac0112_1 0:ea35c18c85fc 22 // return number of rising edges
lilac0112_1 0:ea35c18c85fc 23 uint8_t Sw_count(uint8_t pin) {
lilac0112_1 0:ea35c18c85fc 24 //pin...from 0 to 3
lilac0112_1 0:ea35c18c85fc 25 if(pin>=4) return 0;
lilac0112_1 0:ea35c18c85fc 26 uint8_t return_value = _rising_flag[pin];
lilac0112_1 0:ea35c18c85fc 27 _rising_flag[pin] = 0;
lilac0112_1 0:ea35c18c85fc 28 return(return_value);
lilac0112_1 0:ea35c18c85fc 29 }
lilac0112_1 0:ea35c18c85fc 30 // return the debounced status
lilac0112_1 0:ea35c18c85fc 31 uint8_t ReadSw(void){
lilac0112_1 0:ea35c18c85fc 32 /******
lilac0112_1 0:ea35c18c85fc 33 *return : sw_state
lilac0112_1 0:ea35c18c85fc 34 *スイッチを押したときの動作はdef.hを参照
lilac0112_1 0:ea35c18c85fc 35 *チャタリング防止ライブラリ採用式
lilac0112_1 0:ea35c18c85fc 36 *同時押しは判別されない
lilac0112_1 0:ea35c18c85fc 37 *****/
lilac0112_1 0:ea35c18c85fc 38 uint8_t i,result;
lilac0112_1 0:ea35c18c85fc 39 for(i=result=0; i<4; i++){
lilac0112_1 0:ea35c18c85fc 40 if(Sw_count(i) > 0){
lilac0112_1 0:ea35c18c85fc 41 result = i+1;
lilac0112_1 0:ea35c18c85fc 42 }
lilac0112_1 0:ea35c18c85fc 43 }
lilac0112_1 0:ea35c18c85fc 44 return result;
lilac0112_1 0:ea35c18c85fc 45 }
lilac0112_1 0:ea35c18c85fc 46 uint8_t CountSw(uint8_t pin){
lilac0112_1 0:ea35c18c85fc 47 /******
lilac0112_1 0:ea35c18c85fc 48 *return : sw_state
lilac0112_1 0:ea35c18c85fc 49 *スイッチを押したときの動作はdef.hを参照
lilac0112_1 0:ea35c18c85fc 50 *チャタリング防止ライブラリ採用式
lilac0112_1 0:ea35c18c85fc 51 *同時押しは判別されない
lilac0112_1 0:ea35c18c85fc 52 *****/
lilac0112_1 0:ea35c18c85fc 53 return (Sw_count(pin) > 0);
lilac0112_1 0:ea35c18c85fc 54 }