夏ロボ用

Dependencies:   QEI mbed

Committer:
kurt
Date:
Sat Sep 07 06:34:29 2013 +0000
Revision:
0:7d18a91d0d19
for publish
;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kurt 0:7d18a91d0d19 1 #include "init.h"
kurt 0:7d18a91d0d19 2 #include "QEI.h"
kurt 0:7d18a91d0d19 3
kurt 0:7d18a91d0d19 4
kurt 0:7d18a91d0d19 5 DigitalOut MOTOR_POWER(PTC10);
kurt 0:7d18a91d0d19 6
kurt 0:7d18a91d0d19 7 PwmOut PWM0(PTC9);
kurt 0:7d18a91d0d19 8 PwmOut PWM1(PTC8);
kurt 0:7d18a91d0d19 9 PwmOut PWM2(PTA5);
kurt 0:7d18a91d0d19 10 PwmOut PWM3(PTA4);
kurt 0:7d18a91d0d19 11 PwmOut PWM4(PTA12);
kurt 0:7d18a91d0d19 12 PwmOut PWM5(PTD4);
kurt 0:7d18a91d0d19 13 AnalogIn AD0(PTB0);
kurt 0:7d18a91d0d19 14 AnalogIn AD1(PTB1);
kurt 0:7d18a91d0d19 15 AnalogIn AD2(PTB2);
kurt 0:7d18a91d0d19 16 AnalogIn AD3(PTB3);
kurt 0:7d18a91d0d19 17 AnalogIn AD4(PTC2);
kurt 0:7d18a91d0d19 18
kurt 0:7d18a91d0d19 19 DigitalOut OUT0(PTC6);
kurt 0:7d18a91d0d19 20 //DigitalIn IN0(PTC6);
kurt 0:7d18a91d0d19 21 DigitalOut OUT1(PTC5);
kurt 0:7d18a91d0d19 22 //DigitalIn IN1(PTC5);
kurt 0:7d18a91d0d19 23 DigitalOut OUT2(PTC4);
kurt 0:7d18a91d0d19 24 //DigitalIn IN2(PTC4);
kurt 0:7d18a91d0d19 25 DigitalOut OUT3(PTC3);
kurt 0:7d18a91d0d19 26 //DigitalIn IN3(PTC3);
kurt 0:7d18a91d0d19 27 DigitalOut OUT4(PTC0);
kurt 0:7d18a91d0d19 28 //DigitalIn IN4(PTC0);
kurt 0:7d18a91d0d19 29 DigitalOut OUT5(PTC7);
kurt 0:7d18a91d0d19 30 //DigitalIn IN5(PTC7);
kurt 0:7d18a91d0d19 31
kurt 0:7d18a91d0d19 32 Serial pc(USBTX, USBRX);
kurt 0:7d18a91d0d19 33
kurt 0:7d18a91d0d19 34 QEI ENC0(PTD6, PTD7, NC, 624, QEI::X2_ENCODING);
kurt 0:7d18a91d0d19 35 QEI ENC1(PTD3, PTD1, NC, 624, QEI::X2_ENCODING);
kurt 0:7d18a91d0d19 36 QEI ENC2(PTA13, PTD5, NC, 624, QEI::X2_ENCODING);
kurt 0:7d18a91d0d19 37 QEI ENC3(PTD0, PTD2, NC, 624, QEI::X2_ENCODING);
kurt 0:7d18a91d0d19 38
kurt 0:7d18a91d0d19 39 I2C i2c0(PTE0,PTE1);
kurt 0:7d18a91d0d19 40
kurt 0:7d18a91d0d19 41 DigitalIn SW0(PTE29);
kurt 0:7d18a91d0d19 42 DigitalIn SW1(PTE30);
kurt 0:7d18a91d0d19 43
kurt 0:7d18a91d0d19 44 DigitalOut rled(LED_RED);
kurt 0:7d18a91d0d19 45 DigitalOut gled(LED_GREEN);
kurt 0:7d18a91d0d19 46 DigitalOut bled(LED_BLUE);
kurt 0:7d18a91d0d19 47
kurt 0:7d18a91d0d19 48 void InitBoard(){
kurt 0:7d18a91d0d19 49 SW0.mode(PullUp);
kurt 0:7d18a91d0d19 50 SW1.mode(PullUp);
kurt 0:7d18a91d0d19 51 i2c0.frequency(1000000);
kurt 0:7d18a91d0d19 52 MOTOR_POWER = 1;
kurt 0:7d18a91d0d19 53 }
kurt 0:7d18a91d0d19 54
kurt 0:7d18a91d0d19 55 Timer AdCycle;
kurt 0:7d18a91d0d19 56
kurt 0:7d18a91d0d19 57 void AdjustCycle(int t_us){
kurt 0:7d18a91d0d19 58 if(AdCycle.read_us() == 0) AdCycle.start();
kurt 0:7d18a91d0d19 59
kurt 0:7d18a91d0d19 60 if(AdCycle.read_us()>t_us)gled=0;
kurt 0:7d18a91d0d19 61 else gled=1;
kurt 0:7d18a91d0d19 62 while(AdCycle.read_us()<=t_us);
kurt 0:7d18a91d0d19 63 AdCycle.reset();
kurt 0:7d18a91d0d19 64 }
kurt 0:7d18a91d0d19 65
kurt 0:7d18a91d0d19 66 int Limit(int value,int max,int min) {
kurt 0:7d18a91d0d19 67 if (value>max)return max;
kurt 0:7d18a91d0d19 68 if (value<min)return min;
kurt 0:7d18a91d0d19 69 else return value;
kurt 0:7d18a91d0d19 70 }
kurt 0:7d18a91d0d19 71
kurt 0:7d18a91d0d19 72 double Limit_d(double value,double max,double min) {
kurt 0:7d18a91d0d19 73 if (value>max)return max;
kurt 0:7d18a91d0d19 74 if (value<min)return min;
kurt 0:7d18a91d0d19 75 else return value;
kurt 0:7d18a91d0d19 76 }
kurt 0:7d18a91d0d19 77