#include //#include #define I2C_SLAVE_ADDRESS 0x4 #include #include volatile uint8_t i2c_regs[7]; volatile byte reg_position = 0; const byte reg_size = sizeof(i2c_regs); //SoftwareSerial ss(0,1); void setup() { // put your setup code here, to run once: pinMode(trg, OUTPUT); pinMode(ech, INPUT); TinyWireS.begin(I2C_SLAVE_ADDRESS); TinyWireS.onRequest(requestEvent); //ss.begin(9600); } void loop() { // put your main code here, to run repatedly: } void requestEvent(){ i2c_regs[0] = 'H'; i2c_regs[1] = 'E'; i2c_regs[2] = 'L'; i2c_regs[3] = 'L'; i2c_regs[4] = 'O'; i2c_regs[5] = '!'; i2c_regs[6] = ' '; int n = reg_size - reg_position; for(int i = reg_position; i< n; i++){ TinyWireS.send(i2c_regs[reg_position]); reg_position++; if(reg_position >= reg_size){ reg_position = 0; } } }