Example #1
0
void InitSystem(void)
{
	InitLed();
	InitUart();
	BluetoothInit();
	InitAdc();
	InitSensor();
	InitFan();
	InitRtc();
	InitSecondTimer();
}
Example #2
0
void main(void) {

  

  int t=15;
  /* include your code here */
  
  f1.functionId=ULTRASONIC_FRONT;
  f1.status=READY;
  f1.root=UNIQUE_FUNCTION;
  f1.timerCount=50;
  
  DisableInterrupts;
  InitReg();  
  InitClock();
  InitComunication();  
  InitPorts();
  InitInputCompare();
  
  InitKbi();
  beginComunication();
  initExecutingVector();
  InitBuffer(&bufferIn);
  InitBuffer(&bufferOut);
  InitPwm();
  InitADC();  
  EnableInterrupts;
  InitRtc();
  /*  
    despues de habilitar interrupciones y
    antes de empezar a mover el robot debe calibrar sensores de meta
    no arrancar el motor sin antes ejecutar initGoalSensor()! 
  */
  initGoalSensor();

  
  setPwmValue(t);
  
  if(t>35){
    kbiSampleFreq=1000;
  }else{
    kbiSampleFreq=1000+((35-t)*200);
  }
  

  
  for(;;) {
  if(goalStatus == 0){
  
    PTDD_PTDD1;
    
    setGoalMode(STOP_ON_GOAL);
    
    SENTIDO_M1_1=1;
    SENTIDO_M1_2=0;
    
    
    SENTIDO_M2_1=1;
    SENTIDO_M2_2=0;  
    
    SENSOR_DE_META_ON;
    PTDD_PTDD0=1;

    
    /*
    functionHandler();
    dispatcher(&executingVector,&bufferOut);
    frameGenerator();*/
     /* f1.functionId=ULTRASONIC_FRONT;
      f1.status=READY;
      getUltrasonic(&f1);
      
      while(f1.status!=AVAILABLE);
      t=3000;
      while(t!=0){
        t--;
      } */
      
      /*
      f1.functionId=ULTRASONIC_FRONT;
      f1.status=READY;
      f1.root=UNIQUE_FUNCTION;
      f1.timerCount=50;
      getUltrasonic(&f1);
      
      while(f1.status!=AVAILABLE);
      t=3000;
      while(t!=0){
        t--;
      } */
      /*
      f1.functionId=ULTRASONIC_RIGHT;
      f1.status=READY;
      getUltrasonic(&f1);
      
      while(f1.status!=AVAILABLE);
      t=30000;
      while(t!=0){
        t--;
      } */
      
    } /* loop forever */
  } 
  /* please make sure that you never leave main */
}
Example #3
0
//这2个函数可以放在lib中,...结束
VOID RtcCtrlInit(VOID)
{	
#ifdef	FUNC_UARTDBG_EN
	 BYTE i;
#endif

#ifdef FUNC_ALARM_EN		
	extern BYTE GetRtcCurAlarmNum(VOID);
	
	InitRtc(gAlarmList, sizeof(gAlarmList) / sizeof(AlARM_INFO));
	gCurAlarmNum = GetRtcCurAlarmNum(); //0表示没有闹钟 
	DBG(("gCurAlarmNum:%02BX\n", gCurAlarmNum));	
#else
	InitRtc(NULL, 0); // 该函数必须调用
#endif

	RtcState = RTC_STATE_IDLE;
	RtcSubState = RTC_SET_NONE;
	RtcUpdateDisplay = FALSE;
	RtcFlag = 1;
	RtcAutOutTimeCount = 0;
	TimeOutSet(&RtcReadTimer, 0);
	TimeOutSet(&RtcSetCntTimer, 0);

#ifdef FUNC_ALARM_EN
#ifdef FUNC_BREAK_POINT_EN
	BP_SaveInfo((BYTE *)&gBreakPointInfo.PowerMemory.AlarmList2Store, sizeof(gBreakPointInfo.PowerMemory.AlarmList2Store));
#endif	

#ifdef	FUNC_UARTDBG_EN
	for(i = 0; i < MAX_ALARM_NUM; i++)
	{
		 DBG(("gpAlarmList[%bu].AlarmMode:%bx,", i, gAlarmList[i].AlarmMode));
		 DBG(("gAlarmList[%bu].AlarmTimeAsSeconds:%lu,", i, gAlarmList[i].AlarmTimeAsSeconds));
		 DBG(("gAlarmList[%bu].AlarmStatus:%bx\n", i, gAlarmList[i].AlarmStatus));
	}
#endif

#ifdef	AU6210K_CAR_MODEL_DEMO
	DBG(("InitRtc2\n"));
	RtcSourceState = RTC_SOURCE_CLOCK;
	DBG(("RtcSourceState=%bu\n", RtcSourceState));
	if(GetAlarmStatus(RtcAlarmNum))
	{
		gAlarmState = ALARM_STATUS_OPEN;
		DBG(("gAlarmState= ALARM_STATUS_OPEN\n"));
	}
	else
	{
		gAlarmState = ALARM_STATUS_CLOSE;
		DBG(("gAlarmState= ALARM_STATUS_CLOSE\n"));
	}			
#endif

	
#ifdef AU6210K_BOOMBOX_DEMO
	if(GetAlarmStatus(1))
	{
		gAlarm1State = ALARM_STATUS_OPEN;
		DBG(("gAlarm1State= ALARM1_STATUS_OPEN\n"));
	}
	else
	{
		gAlarm1State = ALARM_STATUS_CLOSE;
		DBG(("gAlarm1State= ALARM1_STATUS_CLOSE\n"));
	}		

	if(GetAlarmStatus(2))
	{
		gAlarm2State = ALARM_STATUS_OPEN;
		DBG(("gAlarm2State= ALARM2_STATUS_OPEN\n"));
	}
	else
	{
		gAlarm2State = ALARM_STATUS_CLOSE;
		DBG(("gAlarm2State= ALARM2_STATUS_CLOSE\n"));
	}			
#endif
#endif

	
//	//测试用,客户根据实际情况设置。
//	gRtcTime.Year = 1980;
//	gRtcTime.Mon = 1;
//	gRtcTime.Date = 1;
//	gRtcTime.WDay = 1;	// 0:星期日
//	gRtcTime.Hour = 7;
//	gRtcTime.Min = 0; 
//	gRtcTime.Sec = 0;
//  SetRTCCurrTime(&gRtcTime);
//	gAlarmTime.Year = 1980; 
//	gAlarmTime.Mon = 1;
//	gAlarmTime.Date = 1;
//	gAlarmTime.WDay = 1;
//	gAlarmTime.Hour = 8;
//	gAlarmTime.Min = 0;
//	gAlarmTime.Sec = 0;
//  gAlarmMode = ALARM_MODE_ONCE_ONLY;
//  SetAlarmTime(RtcAlarmNum, gAlarmMode, &gAlarmTime);

#ifdef AU6210K_BOOMBOX_DEMO	
	gRtcTime.Hour = 12;
	gRtcTime.Min = 0; 
	gRtcTime.Sec = 0;
	SetRTCCurrTime(&gRtcTime);
	
	gAlarmTime.Hour = 0;
	gAlarmTime.Min = 0;
	gAlarmTime.Sec = 0;
	gAlarmMode = ALARM_MODE_PER_DAY;
	SetAlarmTime(1, gAlarmMode, &gAlarmTime);
	SetAlarmTime(2, gAlarmMode, &gAlarmTime);
#endif
}