/* * i2c_test_attiny85.c * * Created: 12/11/2021 15:26:38 * Author : 40008304 */ #if __GNUC__ #include #include #else #include #include #endif #include "led_gen.h" #include "led_receptor.h" #include "USI_TWI_Slave.h" #define NOM_CONSTRUC 0x08 #define NOM_CAPTEUR 0x10 #define VALEUR_DEMAN 0x49 #define BASIC_MODE 0x42 volatile unsigned char rawVal; volatile float adcled1; volatile float adcled2; volatile unsigned char recVal; ISR (ADC_vect){//On récupère les données à chaque fin de conversion Analogique/Numérique adcled1=measureLed1(); adcled2=measureLed2(); recVal=compareLed(adcled1,adcled2); } int main( void ) { unsigned char slaveAdress, cmd,i=0; unsigned char nom_capteur[8]= {'T','u','r','k','i','s','h','Z'}; unsigned char sensor_type[8]= {'C','a','t','c','h','E','y','e'}; slaveAdress = 0x01; USI_TWI_Slave_Initialise(slaveAdress); sei(); ADC_init(); ADC_start_conversion(); while(1) { if( USI_TWI_Data_In_Receive_Buffer() ) { cmd = USI_TWI_Receive_Byte(); switch(cmd) { case NOM_CONSTRUC : for (i=0; i<8; i++) { USI_TWI_Transmit_Byte(nom_capteur[i]); } break; case NOM_CAPTEUR : for (i=0; i<8; i++) { USI_TWI_Transmit_Byte(sensor_type[i]); } break; case VALEUR_DEMAN : USI_TWI_Transmit_Byte(recVal); break; case BASIC_MODE : USI_TWI_Transmit_Byte(0x46); break; } } } return 0; }