int8 master_macro_aws(int16 step){ int16 addr; int8 macro_cmd[2]; int16 macro_arg[2]; int8 macro_end; --step; addr = macro_address[0] + (step*6); init_ext_eeprom(); // port macro_cmd[0] = read_ext_eeprom(addr); ++addr; macro_arg[0] = read16_ext_eeprom(addr); ++addr; ++addr; // macro macro_cmd[1] = read_ext_eeprom(addr); ++addr; macro_arg[1] = read16_ext_eeprom(addr); ++addr; ++addr; macro_end = read_ext_eeprom(addr); // check basic structure if (macro_cmd[0] == 'P' && macro_cmd[1] == 'M') { RTC_read(); RTC_display(); fprintf(COM_A, "%c%Lu,%c%Lu\r\n", macro_cmd[0], macro_arg[0], // port macro_cmd[1], macro_arg[1]); // macro if (macro_arg[1] > 0 && macro_arg[1] < 17) { play_macro(macro_arg[1], macro_arg[0]); // [1] casts to int8 / [0] = port } } else { cmd_err(); macro_end = 59; } return (macro_end); }
/*------------------------------------------------------------/ 函数名称: UART0_ISR 功能描述: 串口中断函数 传 参: 无 返 回 值: 无 -------------------------------------------------------------*/ void __irq UART0_ISR(void) { char ch; disable_irq(); rSUBSRCPND |= 0x01; //[0]--INT_RXD0,清子中断标志 rSRCPND |= 1<<28; //[28]--INT_UART0,清中断标志 rINTPND |= 1<<28; //[28]--INT_UART0,清中断标志 if(rUTRSTAT0&0x01) //接收到数据 { ch = rURXH0; uart0_sendbyte(ch); //将接收到的数据发送出去 if(ch==0x55) //ADC_display(); //显示ADC if(ch==0xaa) RTC_display(); //显示RTC } enable_irq(); }