⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demonstrator.c

📁 The collection of AVR source code in C.
💻 C
字号:
// Demonstrator.c CommDemo version

#include "PC_Comm.h"

void initializer()
{
	// Calibrate the oscillator:
    OSCCAL_calibration();   
	// Initialize the USART
	USARTinit();
	
	// say hello
	sendString("\rPC_Comm.c ready to communicate.\r");   	 
	// identify yourself specifically
	sendString("\rYou are talking to the PC_Comm demo.\r");

}

void parseInput(char s[])
{
	// parse first character	
	switch (s[0])
	{
		case 'c':
			if( (s[1] == 'o') && (s[2] == 'm') && (s[3] == 'm') )
			switch (s[4]) // parse the fifth character
			{
				case 'a':
					Comm1(s);
					break;
				case 'b':
					Comm2(s);
					break;
				case 'c':
					Comm3(s);
					break;
				case 'd':
					Comm4(s);
					break;
				default:
					sendString("\rYou sent: '");
					sendChar(s[0]);
					sendString("' - I don't understand.\r");	
			}
			break;
		case 'd':
			if( (s[1] == 'e') && (s[2] == 'm') && (s[3] == 'o') && (s[4] == '?') )
			sendString("You are talking to the PC_Comm demo.\r");
			break;
		case 'h':
			if( (s[1] == 'e') && (s[2] == 'l') && (s[3] == 'l') && (s[4] == 'o') )
			sendString("Hello yourself\r");
			break;
		default:
			sendString("\rYou sent: '");
			sendChar(s[0]);
			sendString("' - I don't understand.\r");
			break;
		
	}
	s[0] = '\0';
}

void Comm1(char s[])
{
	responder(s,s[4]);
}

void Comm2(char s[])
{
	responder(s,s[4]);
}

void Comm3(char s[])
{
	responder(s,s[4]);
}

void Comm4(char s[])
{
	responder(s,s[4]);
}

void responder(char s[], char c)
{
	char sComm[11];
	unsigned char i = 5, j = 0;

	while( (s[i] != '\0') && (j <= 11) ) 
	{
	
		if( (s[i] >= '0') && (s[i] <= '9') )
		{
			sComm[j++] = s[i++];
		}
		else
		{
			sendString("Error - Comm");
			sendChar(c);
			sendString(" received a non integer: ");
			sendChar(s[i]);
			sendChar('\r');
		}
	}
	
	sComm[j] = '\0';
	
	if(j>11)
	{
		sendString("Error - Comm");
		sendChar(c);
		sendString(" number too large\r");
		sendChar('\r');
	}
	else
	{
		sendString("\rThank you for sending the number: ");
		sendString(sComm);
		sendChar('\r');
	}
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -