42 #define SLAVE_I2C_ADDR 0x60
45 #define SLAVE_I2C_ADDR 0x68
51 STATE_WAIT_FOR_WRITE_DATA,
54 volatile STATE e_mystate = STATE_WAIT_FOR_ADDR;
58 volatile uint8_t u8_gotString = 0;
61 void _ISRFAST _SI2C1Interrupt(
void) {
65 case STATE_WAIT_FOR_ADDR:
68 e_mystate = STATE_WAIT_FOR_WRITE_DATA;
70 case STATE_WAIT_FOR_WRITE_DATA:
72 sz_1[u16_index++] = I2C1RCV;
73 if (sz_1[u16_index-1] == 0) {
75 e_mystate = STATE_WAIT_FOR_ADDR;
79 e_mystate = STATE_WAIT_FOR_ADDR;
83 int16_t getStringLength(
char* psz_1) {
94 void reverseString(
char *psz_s1,
char *psz_s2) {
102 while (*psz_s1end) psz_s1end++;
105 while (psz_s1end != psz_s1) {
106 *psz_s2 = *psz_s1end;
111 *psz_s2 = *psz_s1end;
122 I2C1ADD = MY_ADDR>>1;
139 if (*sz_2 == 0)
continue;
140 u16_len = getStringLength(sz_2);
148 reverseString(sz_1,sz_2);
149 u16_len=getStringLength(sz_2);