parent
							
								
									5afa7988fc
								
							
						
					
					
						commit
						46cddf2792
					
				| @ -1,48 +1,59 @@ | ||||
| /* I2C Echo Example */ | ||||
| #include "../I2CSlave/I2CSlave.h" | ||||
| 
 | ||||
| #include "../avr-i2c-slave/I2CSlave.h" | ||||
| #include <util/delay.h> | ||||
| #include <avr/io.h> | ||||
| #include <avr/interrupt.h> | ||||
| #define I2C_ADDR 0x20 | ||||
| 
 | ||||
| volatile uint8_t data; | ||||
| volatile uint8_t final; | ||||
| volatile uint8_t send=0; | ||||
| void I2C_received(uint8_t received_data) | ||||
| { | ||||
|   data = received_data; | ||||
| } | ||||
| 
 | ||||
| void I2C_requested() | ||||
| { | ||||
|   I2C_transmitByte(data); | ||||
| void I2C_requested() { | ||||
|   I2C_transmitByte(send); | ||||
| } | ||||
| void I2C_challenge() { | ||||
|   I2C_transmitByte(data*3); | ||||
|   I2C_transmitByte(send); | ||||
| } | ||||
| 
 | ||||
| void setup() | ||||
| { | ||||
| void setup() { | ||||
|   // set received/requested callbacks
 | ||||
|   I2C_setCallbacks(I2C_received, I2C_requested); | ||||
| 
 | ||||
|   // init I2C
 | ||||
|   I2C_init(I2C_ADDR); | ||||
|   // init output gpio
 | ||||
|   DDRB = 0b00000001;   | ||||
| } | ||||
|   DDRC = 0b00000100;  // PC2
 | ||||
|   TCNT1 = 0; | ||||
|   TCCR1B |= (1 << CS10) | (1 << CS11); // No prescaling
 | ||||
| 
 | ||||
| int main() | ||||
| { | ||||
| } | ||||
| int main() { | ||||
|   setup(); | ||||
| 
 | ||||
|   int challenge = 0; | ||||
|   unsigned int i = 0; | ||||
|   // Main program loop
 | ||||
|   while(1) { | ||||
| 	if(data != 4) { | ||||
|   	if(data == 1) { | ||||
| 		i = TCNT1; | ||||
| 		srand(i); | ||||
| 		send = rand(); | ||||
| 	  while(data != send+3) { | ||||
|   		I2C_challenge(); | ||||
| 	  } | ||||
| 	else { | ||||
| 		//PORTB |= 1<<1;			
 | ||||
| 		data = 2; | ||||
| 		I2C_requested(); | ||||
| 	  send = 17; | ||||
| 	  I2C_challenge(); | ||||
| 	  PORTC |= 2<<1;			 | ||||
| 	  _delay_ms(5000); | ||||
| 	  PORTC = 0;		  | ||||
| 	  data = 0; | ||||
| 
 | ||||
| 	} | ||||
| }/*	else {		
 | ||||
| 		send = 0; | ||||
| 		I2C_challenge(); | ||||
| 	}*/ | ||||
|   } | ||||
| } | ||||
|  | ||||
					Loading…
					
					
				
		Reference in new issue