Example #1
0
File: usart.c Project: ronicsu/fly
//以字符的格式输出
void Print(uint8_t num)
{
	uint8_t  bai,shi,ge;
	bai=num/100;
	shi=num%100/10;
	ge=num%10;
	UsartSend('0'+bai);
	UsartSend('0'+shi);
	UsartSend('0'+ge);
}
Example #2
0
File: usart.c Project: ronicsu/fly
//以字符的形式输出INT型数据
void PrintInt(uint16_t num)
{
	 uint8_t w5,w4,w3,w2,w1;
	 w5=num/10000;
	 w4=num%10000/1000;
	 w3=num%1000/100;
	 w2=num%100/10;
	 w1=num%10;
	 UsartSend('0'+w5);
	 UsartSend('0'+w4);
	 UsartSend('0'+w3);
	 UsartSend('0'+w2);
	 UsartSend('0'+w1);
}
Example #3
0
uint16_t	UsartPrintByte(uint8_t data, uint8_t hex, uint8_t block)
{
	uint8_t	count = 0;
	char	buffer[4];

	count = hex ? uitohex(buffer, data, hex) : uitodec(buffer, data);

	return UsartSend(buffer, count, block);
}
Example #4
0
uint16_t UsartSendStr(const char *buffer, uint8_t block)
{
	uint16_t  count = 0;

	const char *tmp = buffer;
	while(*tmp++) ++count;

	return UsartSend(buffer, count, block);
}
Example #5
0
File: usart.c Project: ronicsu/fly
//输出字符串
void PrintChar(char *s)
{
	char *p;
	p=s;
	while(*p != '\0')
	{
		UsartSend(*p);
		p++;
	}
}
Example #6
0
uint16_t UsartPrintInt(int32_t data, uint8_t hex, uint8_t block)
{
	uint8_t	count = 0;
	char	buffer[12], *tmp = buffer;

	if(data < 0) {
		*tmp++ = '-';
		data = -data;
		++count;
	}
	count += hex ? uitohex(tmp, data, hex) : uitodec(tmp, data);

	return UsartSend(buffer, count, block);
}
Example #7
0
void ProcessInput(LIVECONFIG *config, char const *buffer)
{
	int	InVal;
	char const *next = FindWordEnd(buffer);

	uint8_t	CmdID = FindCommand(g_commands, buffer, next - buffer);
	uint8_t ShiftID;

	buffer = SkipWhitespaces(next);
	next = FindWordEnd(buffer);

	switch(CmdID)
	{
	case 0:		//show
		ShowParams(config);
		break;

	case 1:		//save
#if defined(USE_EEPROM)
		I2cEEPROM_Write(&g_eeprom, EESTART, config, sizeof(*config));
#endif
		break;

	case 2:		//debug mask
		if((InVal = GetIntParam(buffer, next - buffer, 1, 0)) >= 0)
			g_config.debug = InVal;
		else g_config.debug = g_config.debug ? 0 : -1;
		break;

	case 3:		//mccnt
		if((InVal = GetIntParam(buffer, next - buffer, 1, 0)) >= 0)
			config->mccount = InVal;
		break;

	case 4:		//thdiv
		if((InVal = GetIntParam(buffer, next - buffer, 1, 0)) >= 0)
			config->thdiv = InVal;
		break;

	case 5:		//tlim
		if((InVal = GetIntParam(buffer, next - buffer, 1, 0)) >= 0)
			config->tlimit = InVal;
		break;

	case 6:		//shift
		ShiftID = FindCommand(g_shifts, buffer, next - buffer);
		buffer = SkipWhitespaces(next);
		next = FindWordEnd(buffer);
		InVal = GetIntParam(buffer, next - buffer, 1, 0);
		if(InVal != INT_MIN) {
			if(ShiftID < 4)
				config->shifts[g_shiftDisps[ShiftID]] = InVal;
			else if(ShiftID == 4)
				config->sumshift = InVal;
		}
		break;

	case 7:	//	reset
		g_config = g_config_default;
		break;

	case 8:		//led channel val0 val1 val2 val3 val4 val5 val6 val7
#if defined(USE_LEDBAR)
	{
		uint8_t channel;
		int		i;

		InVal = GetIntParam(buffer, next - buffer, 1, 0);
		if(InVal != INT_MIN) {
			channel = InVal;
			buffer = SkipWhitespaces(next);
			next = FindWordEnd(buffer);
			for(i=0; i<8; ++i) {
				InVal = GetIntParam(buffer, next - buffer, 1, 0);
				if(InVal != INT_MIN) {
					g_config.ledbarvalues[channel][i] = InVal;
					buffer = SkipWhitespaces(next);
					next = FindWordEnd(buffer);
				} else
					break;
			}
		}
	}
#endif
	break;

	default:
#if defined(USE_SERIAL)
	{
		const CmdDesc *cmd = g_commands;

		UsartSend("\r\nUsage: ", 9, 1);
		while(cmd->len) {
			UsartSend(cmd->cmd, cmd->len, 1);
			UsartSend(" ", 1, 1);
			++cmd;
		}
		UsartSend("\r\n",2, 1);
	}
#endif
		break;
	}
}