Rose-Hulman Robotics Team

Changeset 577 for trunk/electronics

Show
Ignore:
Timestamp:
10/16/09 06:07:41 (2 years ago)
Author:
kleinjt
Message:

okay, updated i2c master tester to be a bit more helpful for testing

Location:
trunk/electronics/avr/i2c_irboard
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/electronics/avr/i2c_irboard/i2c_master/serial_i2c.pde

    r560 r577  
    11#include <Wire.h> 
    2 #define ADC_MODE 1 
    32#define ADDRESS 0x26 
    4  
     3#define RAW_ADC     ( 1 ) 
     4#define DISTANCE    ( 2 ) 
     5#define SETADDR     ( 3 ) 
     6#define READADDR    ( 4 ) 
     7#define SET_CORR    ( 5 ) 
     8#define ERROR       ( 0 ) 
    59 
    610void setup() { 
     
    1014 
    1115void loop() { 
    12   int data = -1; 
    13   Serial.println("sending message"); 
    14   Wire.beginTransmission(ADDRESS); 
    15   Wire.send(ADC_MODE); 
    16   Wire.endTransmission(); 
     16  Serial.println("okay, awaiting byte to send over i2c"); 
    1717   
    18   Serial.println("sent message"); 
    19  
     18  serial_send_char(); 
     19   
    2020  Wire.beginTransmission(ADDRESS); 
    2121  Wire.requestFrom(ADDRESS, 1); 
    2222   
    23   while(!Wire.available()) { 
    24   } 
     23  while(!Wire.available()); 
    2524  data = Wire.receive(); 
    2625   
    27   //if (Wire.available()) { 
    28   //  data = Wire.receive(); 
    29   //} 
     26  Wire.endTransmission(); 
    3027   
    31   Wire.endTransmission(); 
    32   Serial.println("received message"); 
    33   Serial.println(data, DEC); 
    34   delay(2000); 
     28  switch(in) { 
     29        case RAW_ADC: 
     30                Serial.print("raw adc: "); 
     31                Serial.println(data, DEC); 
     32                break; 
     33        case DISTANCE: 
     34                Serial.print("distance in cm: "); 
     35                Serial.println(data, DEC); 
     36                break; 
     37        case SETADDR: 
     38                serial.println("enter an address: "); 
     39                serial_send_char(); 
     40                Serial.print("set address to: "); 
     41                Serial.println(data, DEC); 
     42                Serial.println("please reset board"); 
     43                break; 
     44        case READADDR: 
     45                Serial.print("address is: "); 
     46                Serial.println(data, DEC); 
     47                break; 
     48        case SET_CORR: 
     49                Serial.print("enter upper m: "); 
     50                serial_send_char(); 
     51                Serial.print("enter lower m: "); 
     52                serial_send_char(); 
     53                Serial.print("enter b: "); 
     54                serial_send_char(); 
     55                Serial.print("enter k: "); 
     56                serial_send_char(); 
     57        case ERROR: 
     58                Serial.println("dude.. wait.. what?"); 
     59                break: 
     60        default: 
     61                Serial.println("command not recognized."); 
     62  } 
    3563} 
    3664 
    37  
     65void send_serial_char(void) { 
     66        while(!Serial.available()); 
     67        in = serial.read(); 
     68        Wire.beginTransmission(ADDRESS); 
     69        Wire.send(in); 
     70        Wire.endTransmission(); 
     71} 
  • trunk/electronics/avr/i2c_irboard/i2c_slave/twi_slave.c

    r576 r577  
    6464         { 
    6565           case RAW_ADC: 
    66              twi_out = ADCIN() > 2; 
     66             twi_out = ADCIN() >> 2; 
    6767             break; 
    6868       case SETADDR: