Changeset 577 for trunk/electronics
- Timestamp:
- 10/16/09 06:07:41 (2 years ago)
- Location:
- trunk/electronics/avr/i2c_irboard
- Files:
-
- 2 modified
-
i2c_master/serial_i2c.pde (modified) (2 diffs)
-
i2c_slave/twi_slave.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/electronics/avr/i2c_irboard/i2c_master/serial_i2c.pde
r560 r577 1 1 #include <Wire.h> 2 #define ADC_MODE 13 2 #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 ) 5 9 6 10 void setup() { … … 10 14 11 15 void 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"); 17 17 18 Serial.println("sent message");19 18 serial_send_char(); 19 20 20 Wire.beginTransmission(ADDRESS); 21 21 Wire.requestFrom(ADDRESS, 1); 22 22 23 while(!Wire.available()) { 24 } 23 while(!Wire.available()); 25 24 data = Wire.receive(); 26 25 27 //if (Wire.available()) { 28 // data = Wire.receive(); 29 //} 26 Wire.endTransmission(); 30 27 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 } 35 63 } 36 64 37 65 void 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 64 64 { 65 65 case RAW_ADC: 66 twi_out = ADCIN() > 2;66 twi_out = ADCIN() >> 2; 67 67 break; 68 68 case SETADDR:

