diff options
Diffstat (limited to 'robot/io.c')
-rw-r--r-- | robot/io.c | 68 |
1 files changed, 23 insertions, 45 deletions
@@ -1,52 +1,30 @@ #include "io.h" -#include <pololu/orangutan.h> +#include "../shared/consts.h" +#include "modes.h" +#include "orangutan_shim.h" - -w2_io_all global; +w2_io_all g_w2_io; void w2_io_main() { - global.button[0] = get_single_debounced_button_press(BUTTON_A); - global.button[1] = get_single_debounced_button_press(BUTTON_B); - global.button[2] = get_single_debounced_button_press(BUTTON_C); - global.button[3] = get_single_debounced_button_press(TOP_BUTTON); - global.button[4] = get_single_debounced_button_press(BOTTOM_BUTTON); - unsigned int sensor_values[5]; - qtr_read(sensor_values, QTR_EMITTERS_ON); - for(int i = 0; i <5; i++){ - global.qtrSensor[i] = sensor_values[i]; - } - // TODO average voltage over mutiple samples sensor - global.batteryLevel = analog_read(BATTERY_PIN); - global.frontDetection = analog_read(FRONT_SENSOR_PIN); - global.sideDetection = analog_read(SIDE_SENSOR_PIN); + g_w2_io.button[0].pressed = get_single_debounced_button_press(BUTTON_A); + g_w2_io.button[1].pressed = get_single_debounced_button_press(BUTTON_B); + g_w2_io.button[2].pressed = get_single_debounced_button_press(BUTTON_C); + g_w2_io.button[3].pressed = get_single_debounced_button_press(TOP_BUTTON); + g_w2_io.button[4].pressed = get_single_debounced_button_press(BOTTOM_BUTTON); + unsigned int sensor_values[5]; + qtr_read(sensor_values, QTR_EMITTERS_ON); + for (int i = 0; i < 5; i++) { + g_w2_io.qtr[i].range = sensor_values[i]; + } + // TODO average voltage over mutiple samples sensor + g_w2_io.battery.charge_level = analog_read(W2_BATTERY_PIN); + g_w2_io.front_distance.detection = analog_read(W2_FRONT_SENSOR_PIN); + g_w2_io.side_distance.detection = analog_read(W2_SIDE_SENSOR_PIN); - set_motors(global.motor_left, global.motor_right); - red_led(global.led_red); - green_led(global.led_green); - print_character(global.lcd); + set_motors(g_w2_io.motor_left.speed, g_w2_io.motor_right.speed); + red_led(g_w2_io.led_red.on); + green_led(g_w2_io.led_green.on); + print(g_w2_io.lcd.text); }; -void w2_io_init(){ - pololu_3pi_init(2000): - - for(counter=0;counter<80;counter++) - { - if(counter < 20 || counter >= 60) - { - global.motor_left=40; - global.motor_right=-40; - } - else - { - global.motor_left=-40; - global.motor_right=40; - } - - calibrate_ - line_sensors(IR_EMITTERS_ON); - - delay_ms(20); - } - global.motor_left=0; - global.motor_right=0; -}
\ No newline at end of file +void w2_io_init() { w2_modes_call(W2_M_SCAL); } |