void NEC_ReceiveInterrupt(NEC_FRAME f) { GPIO_ToggleBits(GPIOD, GPIO_Pin_7); char buf[12]; USART_WriteString("NEC Frame was received : \r\nAddress : "); Int2Str(buf, f.Address); USART_WriteString(buf); USART_WriteString("\r\nCommand : "); Int2Str(buf, f.Command); USART_WriteString(buf); USART_WriteString("\r\n"); switch (f.Command) { case 1: GPIO_ToggleBits(GPIOD, GPIO_Pin_12); break; case 2: GPIO_ToggleBits(GPIOD, GPIO_Pin_13); break; case 3: GPIO_ToggleBits(GPIOD, GPIO_Pin_14); break; case 4: GPIO_ToggleBits(GPIOD, GPIO_Pin_15); break; } }
unsigned char Modem_Call(TelNr nr) { nr.pos = 0; TCC0_wait_us(25); //NoNumber if(Modem_TelNr(_read, nr) == 11) return 1; //--------------------------------------------------DialNumber USART_WriteString("AT+FCLASS=8"); //EnablePhone USART_WriteByte(0x0D); //CR TCC0_wait_ms(100); //wait USART_WriteString("ATD+"); //CallHeader for(nr.pos= 0; ((nr.tel != 11) && (nr.pos < 16)); nr.pos++) { nr.tel= Modem_TelNr(_read, nr); if(nr.tel != 11) USART_WriteByte(nr.tel+48); } USART_WriteByte(0x0D); //CR //--------------------------------------------------Wait+HangUp LCD_WriteMyFont(16, 119, nr.id); TCC0_wait_sec(1); unsigned char point_pos = 0; for(nr.pos = 0; nr.pos < MO_HANG_UP_TIME; nr.pos++) { Watchdog_Restart(); if(point_pos > 5) { point_pos = 0; LCD_ClrSpace(16,119,2,41); } LCD_WriteMyFont(16, 123 + point_pos * 4, 22); //... point_pos++; TCC0_wait_sec(1); } //DisconnectCall USART_WriteString("ATH"); USART_WriteByte(0x0D); TCC0_wait_sec(1); LCD_ClrSpace(16,119,2,41); return 0; }
void USART_Cmd_Execute(u8 strBuf[],u8 strlen){ //Collect a string data into strBuf. USART_ReceiveCmd(strBuf,strlen); //new line & carriage return. USART_WriteString(newLineCmd); //Get the USART_Cmd_Type. //Select the determined cmd and it's routine to execute. switch(USART_Cmd_Switch(strBuf)){ case USART_CMD_SetPA1: USART_WriteString((u8*)"Cmd: Set PA1"); break; case USART_CMD_SetFreq: USART_WriteString((u8*)"Cmd: Set Freq"); break; case USART_CMD_Default: USART_WriteString((u8*)"Cmd: Default"); break; case USART_CMD_Invalid: USART_WriteString((u8*)"Invalid Command!"); break; default: break; } //new line & carriage return. USART_WriteString(newLineCmd); }
/*=====================================================================================================*/ int main( void ) { u8 TrData[10] = {0}; u8 RrData[7] = {0}; GPIO_Config(); USART1_Init(); while(1) { USART_WriteString((u8*)"Waiting for cmommand!\r\n"); USART_ReceiveStdString(RrData,sizeof(RrData)); USART_WriteString((u8*)"USART Received: "); USART_WriteString(RrData); USART_WriteString((u8*)"\n\r"); if(STR_CMP(RrData,str1,6)) { USART_WriteString((u8*)"Relay1 toggle\n\r"); OUT1 = ~OUT1; LED_B = ~LED_B; } else if(STR_CMP(RrData,str2,6)) { USART_WriteString((u8*)"Relay2 toggle\n\r"); OUT2 = ~OUT2; LED_R = ~LED_R; } LED_G = ~LED_G; } }