示例#1
0
/**
 * \brief Method to test the flash chip.
 * @return void
 */
static void TestFlash(void) {
	uint8_t errCode;
	uint8_t test=55;
	uint8_t result=27;
	uint32_t testAddr=0x0000F300;
	uint8_t status=1;

	FLASH_Init();
	WAIT1_Waitms(1000);
	errCode = FLASH_ReadStatusReg(&status);
	if(errCode!=ERR_OK) {
		for(;;) {}
	}
	CLS1_SendStr((const unsigned char*)"\r\nStatus: ",CLS1_GetStdio()->stdOut);
	CLS1_SendNum16u(status,CLS1_GetStdio()->stdOut);
	for(;;) {}
	errCode = FLASH_WriteByte(testAddr,&test);
	if(errCode!=ERR_OK) {
		for(;;) {}
	}
	errCode = FLASH_ReadByte(testAddr,&result);
	if(errCode!=ERR_OK) {
		for(;;) {}
	}
	CLS1_SendStr((const unsigned char*)"\r\nOutput: ",CLS1_GetStdio()->stdOut);
	CLS1_SendNum16u(result,CLS1_GetStdio()->stdOut);
}
示例#2
0
/*!
 * \brief Parses a command
 * \param cmd Command string to be parsed
 * \param handled Sets this variable to TRUE if command was handled
 * \param io I/O stream to be used for input/output
 * \return Error code, ERR_OK if everything was fine
 */
uint8_t Q4CLeft_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io)
{
  uint8_t res=ERR_OK;

  if (UTIL1_strcmp((const char*)cmd, CLS1_CMD_HELP)==0 || UTIL1_strcmp((const char *)cmd, "Q4CLeft help")==0) {
    CLS1_SendHelpStr((const unsigned char*)"Q4CLeft", (const unsigned char*)"Q4CLeft command group\r\n", io->stdOut);
    CLS1_SendHelpStr((const unsigned char*)"  help|status", (const unsigned char*)"Print help or status information\r\n", io->stdOut);
    CLS1_SendHelpStr((const unsigned char*)"  reset", (const unsigned char*)"Reset the current position counter\r\n", io->stdOut);
    *handled = TRUE;
  } else if (UTIL1_strcmp((const char*)cmd, CLS1_CMD_STATUS)==0 || UTIL1_strcmp((const char*)cmd, "Q4CLeft status")==0) {
    CLS1_SendStr((const unsigned char*)"Q4CLeft:\r\n", io->stdOut);
    CLS1_SendStatusStr((const unsigned char*)"  pos", (const unsigned char*)"", io->stdOut);
  #if Q4CLeft_CNTR_BITS==16
    CLS1_SendNum16u(Q4CLeft_currPos, io->stdOut);
  #elif Q4CLeft_CNTR_BITS==32
    CLS1_SendNum32u(Q4CLeft_currPos, io->stdOut);
  #else
    #error "unknown counter size!"
  #endif
    CLS1_SendStr((const unsigned char*)", ", io->stdOut);
  #if Q4CLeft_CNTR_BITS==16
    CLS1_SendNum16s((int16_t)Q4CLeft_currPos, io->stdOut);
  #elif Q4CLeft_CNTR_BITS==32
    CLS1_SendNum32s((int32_t)Q4CLeft_currPos, io->stdOut);
  #else
    #error "unknown counter size!"
  #endif
    CLS1_SendStr((const unsigned char*)"\r\n", io->stdOut);
    CLS1_SendStatusStr((const unsigned char*)"  C1 C2", (const unsigned char*)"", io->stdOut);
    if (Q4CLeft_GET_C1_PIN()!=0) {
      CLS1_SendStr((const unsigned char*)"1 ", io->stdOut);
    } else {
      CLS1_SendStr((const unsigned char*)"0 ", io->stdOut);
    }
    if (Q4CLeft_GET_C2_PIN()!=0) {
      CLS1_SendStr((const unsigned char*)"1\r\n", io->stdOut);
    } else {
      CLS1_SendStr((const unsigned char*)"0\r\n", io->stdOut);
    }
    CLS1_SendStatusStr((const unsigned char*)"  errors", (const unsigned char*)"", io->stdOut);
    CLS1_SendNum16u(Q4CLeft_nofErrors, io->stdOut);
    CLS1_SendStr((const unsigned char*)"\r\n", io->stdOut);
    *handled = TRUE;
  } else if (UTIL1_strcmp((const char*)cmd, "Q4CLeft reset")==0) {
    Q4CLeft_SetPos(0);
    Q4CLeft_nofErrors = 0;
    *handled = TRUE;
  }
  return res;
}
示例#3
0
void APP_Start(void) {
  uint8_t val=0;
  uint8_t range, res;
  uint16_t ambient;
  CLS1_ConstStdIOType *io = CLS1_GetStdio();

  VL_Init(); /* initialize sensor driver */
  for(;;) {
    res = VL_ReadRangeSingle(&range);
    if (res!=ERR_OK) {
      CLS1_SendStr("ERROR Range: ", io->stdErr);
      CLS1_SendNum8u(res, io->stdErr);
    } else {
      CLS1_SendStr("Range: ", io->stdOut);
      CLS1_SendNum8u(range, io->stdOut);
    }
    res = VL_ReadAmbientSingle(&ambient);
    if (res!=ERR_OK) {
      CLS1_SendStr(" ERROR Ambient: ", io->stdErr);
      CLS1_SendNum8u(res, io->stdErr);
    } else {
      CLS1_SendStr(" Ambient: ", io->stdOut);
      CLS1_SendNum16u(ambient, io->stdOut);
    }
    CLS1_SendStr("\r\n", io->stdOut);
    LED1_Neg();
    WAIT1_Waitms(500);
  }
}
示例#4
0
static void REMOTE_PrintStatus(const CLS1_StdIOType *io) {
  int i;
  uint8_t buf[32];

  CLS1_SendStatusStr((unsigned char*)"remote", (unsigned char*)"\r\n", io->stdOut);

  CLS1_SendStatusStr((unsigned char*)"  channels", "", io->stdOut);
  for(i=0;i<sizeof(REMOTE_channels)/sizeof(REMOTE_channels[0]);i++) {
    CLS1_SendNum16u(REMOTE_channels[i], io->stdOut);
    CLS1_SendStr(" ", io->stdOut);
  }
  CLS1_SendStr("\r\n", io->stdOut);
}
示例#5
0
void REF_DumpHistory(void) {
  int i;
  unsigned char buf[16];
  
  CLS1_SendStr((unsigned char*)"history: #", CLS1_GetStdio()->stdOut);
  CLS1_SendNum16u(REF_nofHistory, CLS1_GetStdio()->stdOut);
  for (i=0;i<REF_NOF_SENSORS;i++) {
    CLS1_SendStr((unsigned char*)" 0x", CLS1_GetStdio()->stdOut);
    buf[0] = '\0'; UTIL1_strcatNum16Hex(buf, sizeof(buf), SensorHistory[i]);
    CLS1_SendStr(buf, CLS1_GetStdio()->stdOut);
  }
  CLS1_SendStr((unsigned char*)"\r\n", CLS1_GetStdio()->stdOut);
}