Practical Robotics Modular Robot Library

Dependents:   ModularRobot

Committer:
jah128
Date:
Sat Nov 26 17:28:53 2016 +0000
Revision:
0:8a2dd255c508
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jah128 0:8a2dd255c508 1 #include "robot.h"
jah128 0:8a2dd255c508 2
jah128 0:8a2dd255c508 3 char adc_data_messages [8] = {0x84,0xC4,0x94,0xD4,0xA4,0xE4,0xB4,0xF4};
jah128 0:8a2dd255c508 4
jah128 0:8a2dd255c508 5 char adc_stored_values [8];
jah128 0:8a2dd255c508 6
jah128 0:8a2dd255c508 7 char sensor_ticker_current_sensor = 0;
jah128 0:8a2dd255c508 8 Ticker sensor_ticker;
jah128 0:8a2dd255c508 9
jah128 0:8a2dd255c508 10 void Sensors::start_sensor_ticker(){
jah128 0:8a2dd255c508 11 sensor_ticker.attach(this,&Sensors::sensor_ticker_routine,SENSOR_TICKER_PERIOD);
jah128 0:8a2dd255c508 12 }
jah128 0:8a2dd255c508 13
jah128 0:8a2dd255c508 14 void Sensors::sensor_ticker_routine(){
jah128 0:8a2dd255c508 15 read_adc_value(sensor_ticker_current_sensor);
jah128 0:8a2dd255c508 16 sensor_ticker_current_sensor ++;
jah128 0:8a2dd255c508 17 if(sensor_ticker_current_sensor == 8) sensor_ticker_current_sensor = 0;
jah128 0:8a2dd255c508 18 }
jah128 0:8a2dd255c508 19
jah128 0:8a2dd255c508 20 char Sensors::get_adc_value(char channel){
jah128 0:8a2dd255c508 21 return adc_stored_values[channel];
jah128 0:8a2dd255c508 22 }
jah128 0:8a2dd255c508 23
jah128 0:8a2dd255c508 24 char Sensors::read_adc_value(char channel){
jah128 0:8a2dd255c508 25 char return_value = 0;
jah128 0:8a2dd255c508 26 if(channel < 8 && i2c_lock == 0){
jah128 0:8a2dd255c508 27 char command[1];
jah128 0:8a2dd255c508 28 char ret_data[1];
jah128 0:8a2dd255c508 29 command[0] = adc_data_messages[channel];
jah128 0:8a2dd255c508 30 i2c_lock = 1;
jah128 0:8a2dd255c508 31 primary_i2c.write(ADC_ADDRESS,command,1);
jah128 0:8a2dd255c508 32 primary_i2c.read(ADC_ADDRESS,ret_data,1);
jah128 0:8a2dd255c508 33 i2c_lock = 0;
jah128 0:8a2dd255c508 34 return_value = ret_data[0];
jah128 0:8a2dd255c508 35 adc_stored_values[channel]=return_value;
jah128 0:8a2dd255c508 36 }
jah128 0:8a2dd255c508 37 return return_value;
jah128 0:8a2dd255c508 38 }