source: rtos_arduino/trunk/arduino_lib/libraries/Robot_Control/src/keyboard.cpp@ 136

Last change on this file since 136 was 136, checked in by ertl-honda, 8 years ago

ライブラリとOS及びベーシックなサンプルの追加.

File size: 1.2 KB
Line 
1#include "ArduinoRobot.h"
2
3#if ARDUINO >= 100
4#include "Arduino.h"
5#else
6#include "WProgram.h"
7#endif
8int pul_min[]={0,133,319,494,732};
9int pul_max[]={10,153,339,514,752};
10/*int pul_min[]={0,123,295,471,714};
11int pul_max[]={0,143,315,491,734};*/
12/*
13int pul_min[]={0,133,319,494,732};
14int pul_max[]={10,153,339,514,752};
15*/
16void sort(int* v);
17
18void RobotControl::keyboardCalibrate(int *vals){
19 for(int i=0;i<5;i++){
20 pul_min[i]=vals[i]-10;
21 pul_max[i]=vals[i]+10;
22 }
23}
24int8_t RobotControl::keyboardRead(void)
25{
26
27 int lectura_pul;
28 int8_t conta_pul=0;
29 static int anterior=0;
30
31 lectura_pul = this->averageAnalogInput(KEY);
32
33 while ((conta_pul < NUMBER_BUTTONS) && !(lectura_pul >= pul_min[conta_pul] && lectura_pul <= pul_max[conta_pul]))
34 conta_pul++;
35
36 if (conta_pul >= NUMBER_BUTTONS)
37 conta_pul = -1;
38 else
39 delay(100);
40
41 return conta_pul;
42}
43
44int RobotControl::averageAnalogInput(int pinNum)
45{
46 int vals[5];
47 for(int i=0;i<5;i++){
48 for(int j=i;j<5;j++){
49 vals[j]=::analogRead(pinNum);
50 }
51 sort(vals);
52 }
53 return vals[0];
54}
55void sort(int* v){
56 int tmp;
57 for(int i=0;i<4;i++)
58 for(int j=i+1;j<5;j++)
59 if(v[j]<v[i]){
60 tmp=v[j];
61 v[j]=v[i];
62 v[i]=tmp;
63 }
64 v[0]=v[3];
65}
Note: See TracBrowser for help on using the repository browser.