a
Dependencies: mbed LidarLitev2
main.cpp
- Committer:
- kazuryu
- Date:
- 2019-09-29
- Revision:
- 0:48dbc1f972f1
File content as of revision 0:48dbc1f972f1:
#include "mbed.h"
#include "rori.h"
DigitalIn ins(D12);
DigitalIn intt(D5);
PwmOut outs(D6);
PwmOut outt(D3);
DigitalOut outs_admin(D9);
DigitalOut outt_admin(D4);
//RORI roris(PA_0_ALT1,PA_1_ALT1);
RORI rorit(PA_4_ALT0,PB_0_ALT0);
Serial serial(USBTX,USBRX);
/*
DigitalIn ins(D13);
DigitalIn intt(D11);
PwmOut outs(D5);
PwmOut outt(D3);
DigitalOut outs_admin(D12);
DigitalOut outt_admin(D10);
RORI roris(PA_0_ALT1,PA_1_ALT1);
RORI rorit(PA_4_ALT0,PB_0_ALT0);
Serial serial(USBTX,USBRX);
*/
long roris_l = 0;
long rorit_l = 0;
int bunkais = 1024;
int bunkait = 1024;
float angs = 0;
float angt = 0;
int counts = 1;
int countt = 1;
bool start_lock = false;
long lasts= 0;
long lastt = 0;
DigitalIn inlock_f(D2);
PwmOut lock(D11);
/*
DigitalIn inlock_f(D15);
PwmOut lock(D14);
*/
DigitalOut leds(D0);
DigitalOut ledt(D1);
bool flags = false;
bool flagt = false;
/*
DigitalIn discr1(D14);
DigitalIn discr2(D15);
DigitalOut fieldColor(D13);
DigitalOut cloth(D12);
*/
int main(){
ins.mode(PullDown);
intt.mode(PullDown);
inlock_f.mode(PullDown);
outs.period_ms(1);
lock.period_ms(1);
while(1){
if(start_lock){
serial.printf("%s","start");
serial.printf("%d",inlock_f.read());
while(!inlock_f.read()){
lock = 0.2;
serial.printf("%s\n","while");
}
serial.printf("%s\n","out");
lock = 0;
start_lock = false;
}
if(ins.read()){
outs = 0.1f;
//roris.read(&roris_l);//
if(roris_l == lasts){
flags = !flags;
leds = (flags)?1:0;
}
angs = (float)roris_l/bunkais;//ang
angs *= 360;//deg
//serial.printf("%s",":");
//serial.printf("%f\n",angs);
if(abs(angs) > 90*counts){
counts++;
outs = 0;
outs_admin = 1;
wait(1);
outs_admin = 0;
}
lasts = roris_l;
}else{
outs = 0;
}
if(intt.read()){
outt = 0.1f;
rorit.read(&rorit_l);
if(rorit_l == lastt){
flagt = !flagt;
ledt = (flagt)?:0;
}
angt = (float)rorit_l/bunkait;
angt *= 360;
if(abs(angt) > 120*countt){
countt++;
outt = 0;
outt_admin = 1;
wait(0.5f);
outt_admin = 0;
}
lastt = rorit_l;
}else{
outt = 0;
}
}
}
/*
int Discrimination(bool hoge){
bool discColor;
bool discMode;
discColor=discr1;
discMode=discr2;
if(hoge){
fieldColor=discr1;
cloth=discr2;
}else{
return 0;
}
return 1;
}
*/