void CmdDcMotor(int mode)
{
    uint32_t cmdArgId;
	uint32_t cmdArg1;
	int32_t cmdArg2;

	if(mode != CMD_INTERACTIVE) return;
	printf("DC Motor motor\n");

	/* check for valid arguments*/
	if(fetch_uint32_arg((uint32_t*)&cmdArgId) < 0)
	{
		printf("Dc motor ID missing\n");
		return;
	}
	
	if(fetch_uint32_arg((uint32_t*)&cmdArg1) < 0)
	{
		printf("ON/OFF missing missing\n");
		return;
	}
	/*turn dc motor off by disabling pwm*/
	if(!cmdArg1)
	{
		printf("Turning DC Motor off\n");
		stopDcMotorPB(cmdArgId);
		return;
	}
	if(fetch_int32_arg(&cmdArg2) < 0)
	{
		printf("Signed speed argument missing\n");
		return;
	}
	startDcMotor(cmdArgId, cmdArg1, cmdArg2);
}
void CmdLED(int mode)
{
  uint32_t led,val;
  int rc;
  if(mode != CMD_INTERACTIVE) {
    return;
  }

  rc = fetch_uint32_arg(&led);
  if(rc) {
    printf("Missing LED index\n");
    return;
  }
    
  rc = fetch_uint32_arg(&val);
  if(rc) {
    printf("Missing state value, 0 for Off, 1 for On\n");
    return;
  }
  
  if((led < 3) || (led > 10)) {
    printf("Led index of %u is out of the range (3..10)\n",
	   (unsigned int)led);
    return;
  }

  led -= 3;
  if(val) {
    BSP_LED_On(LEDs[led]);
  } else {
    BSP_LED_Off(LEDs[led]);
  }

} 
void CmdW(int mode)
{
  uint32_t addr,data;

  if(mode != CMD_INTERACTIVE) return;

  fetch_uint32_arg(&addr);
  fetch_uint32_arg(&data);

  *((uint32_t *)addr) = data;
}
/*commands for stepper motor*/
void CmdStepper(int mode)
{
	uint32_t cmdArg1, cmdArg2, cmdArgNo;

	if(mode != CMD_INTERACTIVE) return;

	/* check for valid arguments*/
	if(fetch_int32_arg((int32_t*)&cmdArgNo) < 0)
	{
		printf("Stepper motor number missing\n");
		return;
	}

	/* check for valid arguments*/
	if(fetch_int32_arg((int32_t*)&cmdArg1) < 0)
	{
		printf("Step count missing\n");
		return;
	}

	if(fetch_uint32_arg((uint32_t*)&cmdArg2) < 0)
	{
		printf("step delay missing\n");
		return;
	}

	/*activate stepper*/
	if(activateStepper(cmdArgNo, cmdArg1, cmdArg2) != STEPPER_OK)
		printf("Stepper error\n");
	else
		printf("Stepper Success!!\n");
}
Beispiel #5
0
void uartsent(int mode)
{
uint32_t c;
if (mode!=CMD_INTERACTIVE) return;
fetch_uint32_arg(&c);
USARTTxBuffer[0]=c;
printf("sending a character\n");
HAL_UART_Transmit(&UartHandle,USARTTxBuffer,1,1000);

}
void CmdR(int mode)
{
  uint32_t addr;

  if(mode != CMD_INTERACTIVE) return;

  fetch_uint32_arg(&addr);

  printf("0x%08X: 0x%08X\n",(unsigned int)addr, 
	 (unsigned int)(*((uint32_t *)addr)));
}
// This function handles the command interface between minicom and stm32 library
void CmdCount(int mode)
{
   uint32_t val = 0;
   int filter;
   filter = fetch_uint32_arg(&val);
   if(filter)
   {
     printf("pass in number of counts\n");
     return;
   }
   
   printf("Entered value for counter is : %d \n",(int)val);
   counter = val;
   
}
void CmdDacWrite(int mode)
{
	uint32_t dacVal;

	if(mode != CMD_INTERACTIVE) return;

	fetch_uint32_arg(&dacVal);

	if(dacVal > 4095)
	{
		printf("argument out of range\n");
		return;
	}

	writeDacPortA(dacVal);
}
void CmdAdcRead(int mode)
{
	uint32_t tempCmdArgInt;
	int16_t adcVal;

	if(mode != CMD_INTERACTIVE) return;

	fetch_uint32_arg(&tempCmdArgInt);

	if(tempCmdArgInt < 2 || tempCmdArgInt > 5)
	{
		printf("argument out of range\n");
		return;
	}

	adcVal = readAdcPortA(tempCmdArgInt);

	if(adcVal != ADC_ERR)
		printf("Analog value at GPIO PA%d is %d\n", (int)tempCmdArgInt, adcVal);
}
void CmdLcdTest(int mode)
{
	char *tempCmdArgStr;
	uint32_t pos = 0;
	if(mode != CMD_INTERACTIVE) return;

	fetch_string_arg((char**)&tempCmdArgStr);

	fetch_uint32_arg((uint32_t*)&pos);
	/*if(!lcdInitDone)
	  {
	  initLcd(LCD_DISP_ON_BLINK);
	//lcdInitDone = 1; 
	}*/
	initLcd(LCD_DISP_ON);
	printf("sending string %s at %d\n", tempCmdArgStr, (int)pos);
	setLcdBlBrightness(500);
	clearLcd();
	gotoLcd(pos);
	putsLcd(tempCmdArgStr);
}