Code for the car to drive in a figure eight motion
Dependencies: mbed-rtos mbed MODSERIAL mbed-dsp telemetry
main.cpp
- Committer:
- cheryl_he
- Date:
- 2015-03-20
- Revision:
- 21:a9e9aa7da8db
- Parent:
- 17:3b545dc0c800
- Child:
- 22:986b3addda41
File content as of revision 21:a9e9aa7da8db:
#include "mbed.h" #include "rtos.h" #include "MODSERIAL.h" #include "telemetry.h" #include "telemetry-mbed.h" // Camera Pins DigitalOut clk(PTA13); DigitalOut si(PTD4); AnalogIn camData(PTC2); //Servo, Motor, Serial Pins PwmOut servo(PTA5); PwmOut motor1(PTA4); PwmOut motor2(PTA12); DigitalOut break1(PTC12); DigitalOut break2(PTC13); Serial pc(USBTX, USBRX); //Telemetry MODSERIAL telemetry_serial(PTA2, PTA1); telemetry::MbedHal telemetry_hal(telemetry_serial); telemetry::Telemetry telemetry_obj(telemetry_hal); telemetry::Numeric<uint32_t> tele_time_ms(telemetry_obj, "time", "Time", "ms", 0); telemetry::NumericArray<uint16_t, 128> tele_linescan(telemetry_obj, "linescan", "Linescan", "ADC", 0); telemetry::Numeric<float> tele_motor_pwm(telemetry_obj, "motor", "Motor PWM", "%DC", 0); tele_motor_pwm.set_limits(0 ,1); // Interrupt for encoder InterruptIn interrupt(PTA13); float line [128]; Mutex line_mutex; void linecam_thread(void const *args){ while(1){ line_mutex.lock(); pc.printf("["); for(int i=0; i<128; i++){ pc.printf("%f",line[i]); pc.printf(" "); } pc.printf("]"); } } int main() { Thread thread(linecam_thread); thread.set_priority(osPriorityIdle); //thread.set_priority(-3); int integrationCounter = 0; while(1) { if(integrationCounter % 151== 0){ } else if (integrationCounter > 129){ } else{ clk = 1; wait_us(50); line[integrationCounter - 1] = camData; clk = 0; } integrationCounter++; } }