Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
 /*------------------------------------------------------------/
函数名称:	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();
}