Пример #1
0
void Usart_Write_String (const char * stringa){
	int i;

	for(i=0; stringa[i]!='\0'; i++){
		Usart_Write(stringa[i]);
	}
}
Пример #2
0
__inline__ static T_SYS_EVENT get_serial_command(VOID)
{
	INT c;
	T_SERIAL_CMD* pt_cmd_tbl;
	T_SYS_EVENT t_sys_event = E_EVENT_IDLE;

	c = Usart_Read();   /* 1文字受信 */
	if( c == -1 ) {
		return t_sys_event;
	}

	Usart_Write( c );   /* ホストへエコーバック */
	Usart_PgmPuts( PSTR("\r\n") );

	for( pt_cmd_tbl = gt_serial_event_tbl; pt_cmd_tbl->c != '\0'; pt_cmd_tbl++ ) {
		if( pt_cmd_tbl->c == c ) {
			t_sys_event = pt_cmd_tbl->t_sys_event;
			return t_sys_event;
		}
	}

	if( (fn_serial_cmd_hdl == NULL)
	 || (fn_serial_cmd_hdl( c ) != 0)
	 ) {
		Usart_PgmPuts( PSTR("command not found\n") );
	}

	return t_sys_event;
}
Пример #3
0
void main ()
{
  char buf[20];
  int i;
  int buflen;
 ADCON1= 0x20;       // CONFIGURE ADC --- AN2
 TRISA = 0xFF;       // MAKE PORTA AS INPUT
 usart_init(2400);   // initialize the usart

do
{ 

 depth=pressure();
 itoa(buf, depth);
 buflen=strlen(buf);
for(i=buflen-1; i>=0; i--)
{
 Usart_Write(buf[i]); // write the data 
} 
Usart_Write(0x0D);
Usart_Write(0x0A) ;
 
} while(1);
}
Пример #4
0
VOID Usart_PrintDigitN( UINT val, UINT print_lvl )
{
	UINT digit_1;

	for( ; print_lvl != 0; print_lvl /= 10 ) {
		digit_1 = val / print_lvl;
		val %= print_lvl;

//		if( digit_1 < 10 ) {
			Usart_Write( '0' + digit_1 );
//		}
//		else {
//			Usart_Write( '?' );
//		}
	}
}
Пример #5
0
void interrupt(){

	if(Usart_data_ready()){
		car_letto=Usart_Read();

		if(car_letto!=0x0D && car_letto!=0x0A && cursore_buffer<DIM_MASSIMA_BUFFER){
			Usart_Write(car_letto);
			buffer[cursore_buffer]=car_letto;
			cursore_buffer++;
		}
		else if(strlen(buffer)>0){
			buffer[cursore_buffer]='\0';
			
			cursore_buffer=0;

			if(buffer[0]=='M' && strlen(buffer)==5){
				char s_posizione[4];
				char s_numero_servo[2];
				int posizione;
				int numero_servo;

				s_numero_servo[0]=buffer[1];
				s_numero_servo[1]='\0';

				s_posizione[0]=buffer[2];
				s_posizione[1]=buffer[3];
				s_posizione[2]=buffer[4];
				s_posizione[3]='\0';

				if(isInteger(s_numero_servo) && isInteger(s_posizione)){
					posizione=atoi(s_posizione);
					numero_servo=atoi(s_numero_servo);

					if(posizione<MIN_POS) posizione=MIN_POS;
					if(posizione>MAX_POS) posizione=MAX_POS;
					if(numero_servo<0) numero_servo=0;
					if(numero_servo>3) numero_servo=3;

					posizioni_servo[numero_servo]=posizione;
				}
				else{
					Usart_Write_String(stringa_Nuova_Linea);
					Usart_Write_String(stringa_Sintassi_Errata);
				}
				Usart_Write_String(stringa_Nuova_Linea);
				Usart_Write_String(stringa_Posizione_Cambiata);
				printPrompt();
			}
			else if((buffer[0]=='O' || buffer[0]=='o') && strlen(buffer)==2){
				char s_numero_servo[2];
				int numero_servo;

				s_numero_servo[0]=buffer[1];
				s_numero_servo[1]='\0';

				if(isInteger(s_numero_servo)){
					numero_servo=atoi(s_numero_servo);

					if(buffer[0]=='O'){ //accensione servo
						switch(numero_servo){
							case 0: ACCENSIONE_SERVO0=SI;
								break;
							case 1: ACCENSIONE_SERVO1=SI;
								break;
							case 2: ACCENSIONE_SERVO2=SI;
								break;
							case 3: ACCENSIONE_SERVO3=SI;
								break;
							default: Usart_Write_String(stringa_Sintassi_Errata);
								break;
						}
					}
					else if(buffer[0]=='o'){ //spegnimento il servo
						switch(numero_servo){
							case 0: ACCENSIONE_SERVO0=NO;
								break;
							case 1: ACCENSIONE_SERVO1=NO;
								break;
							case 2: ACCENSIONE_SERVO2=NO;
								break;
							case 3: ACCENSIONE_SERVO3=NO;
								break;
							default: Usart_Write_String(stringa_Sintassi_Errata);
								break;
						}
					}
				Usart_Write_String(stringa_Nuova_Linea);
				Usart_Write_String(stringa_Stato_Cambiato);
				printPrompt();
				}
			}
			else{ //comando sconosciuto
				Usart_Write_String(stringa_Nuova_Linea);
				Usart_Write_String(stringa_Comando_Sconosciuto);
				printPrompt();
			}

		}
		else { //stringa vuota annulla
		cursore_buffer=0;
		}
	} //fine data_ready
}//fine funzione
Пример #6
0
static int usart_putchar( char c, struct __file* dummy )
{
	Usart_Write( c );
	return 0;
}
Пример #7
0
VOID Usart_Puts( const CHAR* str )
{
	while( *str ) {
		Usart_Write( *str++ );
	}
}