ジャパンオープン用のメインプログラム
Dependencies: mbed AQM1602 HMC6352 PID
switch.cpp
00001 #include "mbed.h" 00002 #include "extern.h" 00003 00004 00005 uint8_t _samples[4]={0}; 00006 uint8_t _output[4]={0}; 00007 uint8_t _output_last[4]={0}; 00008 uint8_t _rising_flag[4]={0}; 00009 00010 void Sw_sample(void) { 00011 int i; 00012 for(i=0; i<4; i++){ 00013 _output_last[i] = _output[i]; 00014 _output[i] = Sw[i].read(); 00015 if (!_output[i] && _output_last[i]) 00016 { 00017 _rising_flag[i]++; 00018 } 00019 } 00020 //pc.printf("food%d\r\n",_output_last[0]); 00021 } 00022 // return number of rising edges 00023 uint8_t Sw_count(uint8_t pin) { 00024 //pin...from 0 to 3 00025 if(pin>=4) return 0; 00026 uint8_t return_value = _rising_flag[pin]; 00027 _rising_flag[pin] = 0; 00028 return(return_value); 00029 } 00030 // return the debounced status 00031 uint8_t ReadSw(void){ 00032 /****** 00033 *return : sw_state 00034 *スイッチを押したときの動作はdef.hを参照 00035 *チャタリング防止ライブラリ採用式 00036 *同時押しは判別されない 00037 *****/ 00038 uint8_t i,result; 00039 for(i=result=0; i<4; i++){ 00040 if(Sw_count(i) > 0){ 00041 result = i+1; 00042 } 00043 } 00044 return result; 00045 } 00046 uint8_t CountSw(uint8_t pin){ 00047 /****** 00048 *return : sw_state 00049 *スイッチを押したときの動作はdef.hを参照 00050 *チャタリング防止ライブラリ採用式 00051 *同時押しは判別されない 00052 *****/ 00053 return (Sw_count(pin) > 0); 00054 }
Generated on Wed Jul 13 2022 02:59:03 by 1.7.2