示例#1
0
/* set current date time */
EXPORT	ER	cdSetDateTime(void *date_tim)
{
	DATE_TIM	dt;
	INT		year;

        /* read calendar date time */
	dt = *((DATE_TIM *)date_tim);

        /* BIN -> BCD conversion */
	year = (dt.d_year + 1900) % 100;
	dt.d_year = BINtoBCD(year);
	dt.d_month = BINtoBCD(dt.d_month);
	dt.d_wday = BINtoBCD(dt.d_wday);
	dt.d_day = BINtoBCD(dt.d_day);
	dt.d_hour = BINtoBCD(dt.d_hour);
	dt.d_min = BINtoBCD(dt.d_min);
	dt.d_sec = BINtoBCD(dt.d_sec);

        /* stop counter temporarily */
	rtcWrite(rxCTRL, 0x02);

        /* set current date time */
	rtcWrite(rxSEC, dt.d_sec);
	rtcWrite(rxMIN, dt.d_min);
	rtcWrite(rxHOUR,  dt.d_hour);
	rtcWrite(rxWEEK, 0x01);		// we do not use day of the week
	rtcWrite(rxDAY, dt.d_day);
	rtcWrite(rxMONTH,  dt.d_month);
	rtcWrite(rxYEAR, dt.d_year);

        /* resume counter */
	rtcWrite(rxCTRL, 0x00);

	return E_OK;
}
示例#2
0
/* hardware initialization */
EXPORT	ER	cdInitHardware(void)
{
	ER	er;

	er = em1d512_iicspi_svc(TRUE);

	if (er >= E_OK) {
		rtcWrite(rxEXT, 0x00);
		rtcWrite(rxFLAG, 0x00);
		rtcWrite(rxCTRL, 0x00);
	}

	return er;
}
示例#3
0
文件: Cartridge.cpp 项目: bgK/vba-ttb
void write16(const u32 address, const u16 value)
{
	switch (address >> 24)
	{
	case 8:
		if (address == 0x80000c4 || address == 0x80000c6 || address == 0x80000c8)
		{
			rtcWrite(address, value);
		}
		break;
	case 13:
		if (game.hasEEPROM())
		{
			eepromWrite(address, (u8)value);
		}
		break;
	case 14:
		if (game.hasSRAM())
		{
			sramWrite(address, (u8)value);
		}
		else if (game.hasFlash())
		{
			flashWrite(address, (u8)value);
		}
		break;
	default:
		break;
	}
}
示例#4
0
void rtcSetEpochSeconds (time_t now)
{
  struct tm tm;

  localtime_r (&now, &tm);
  rtcWrite (&tm);
}
示例#5
0
文件: sAPI_Rtc.c 项目: elsuizo/sAPI
/*
 * @Brief: Configure RTC peripheral.
 * @param  RTC_t rtc: RTC structure
 * @return bool_t true (1) if config it is ok
 */
bool_t rtcConfig( RTC_t * rtc ){
   
   bool_t ret_val = 1;
   
   static bool_t init;
   RTC_TIME_T rtcTime;

   if( init ){
      /* Already initialized */
      ret_val = 0;
   } else {
      
      /* RTC Block section ------------------------- */
      Chip_RTC_Init(LPC_RTC);

      /* Set current time for RTC */
      /* Current time is 22:00:00 , 2016-07-02 */
      /*
      rtcTime.time[RTC_TIMETYPE_SECOND]     = 0;
      rtcTime.time[RTC_TIMETYPE_MINUTE]     = 0;
      rtcTime.time[RTC_TIMETYPE_HOUR]       = 22;
      rtcTime.time[RTC_TIMETYPE_DAYOFMONTH] = 2;
      rtcTime.time[RTC_TIMETYPE_MONTH]      = 7;
      rtcTime.time[RTC_TIMETYPE_YEAR]       = 2016;
      Chip_RTC_SetFullAlarmTime(LPC_RTC, &rtcTime);
      */
      rtcWrite( rtc );

      /* Enable rtc (starts increase the tick counter 
         and second counter register) */
      Chip_RTC_Enable(LPC_RTC, ENABLE);
      
      init = 1;
   }

   return ret_val;
}
示例#6
0
文件: shell.c 项目: koson/atinom
void set_date(int argc, char **argv)
{	
	unsigned char *str_rtc;
	struct rtc_time tmku;
	int ret;
	time_t clk;	
	
	rtc_reset();
	rtc_init();
	rtc_start();
	
	str_rtc = pvPortMalloc(512);
	if (str_rtc == NULL) {
		printf("ERR: alok failed\r\n");
		//free(str_rtc);
		vPortFree(str_rtc);
		return;
	}
	
	//printf("dapat free %X\r\n", str_rtc);	
	memset(str_rtc, 0, 512);	
	
	printf(" set_date tahun bulan tanggal jam menit\r\n");
	printf("   misalnya : set_date 2010 3 5 10 22\r\n");
	printf("   artinya  : set waktu ke tgl 5 Maret 2010, jam 10:22 pagi\r\n");
	
	if (argc < 5) 	{
		printf("Argument kurang !\r\n");
		vPortFree(str_rtc);
		return;
	}
		
	//display_args(argc, argv);
	sprintf(str_rtc, "%s:%s:%s:%s:%s", argv[1], argv[2], argv[3], argv[4], argv[5]); 
	ret = sscanf(str_rtc, "%d:%d:%d:%d:%d", &tmku.tm_year, &tmku.tm_mon, &tmku.tm_mday, &tmku.tm_hour, &tmku.tm_min); 
	if (ret < 5)	{
		printf(" ERR: format salah !\r\n");
		vPortFree(str_rtc);
		return;
	}

	printf(" Set : %d-%d-%d %d:%d ",  tmku.tm_year, tmku.tm_mon, tmku.tm_mday, tmku.tm_hour, tmku.tm_min); 
		
	tmku.tm_year = tmku.tm_year - 1900;
	tmku.tm_mon  = tmku.tm_mon - 1;
	tmku.tm_sec = 0;
		
	debug_printf(" OK : %d-%d-%d %d:%d\r\n",  tmku.tm_year, tmku.tm_mon, tmku.tm_mday, tmku.tm_hour, tmku.tm_min); 
	/*
	if (rtc_valid_tm(&tmku)) 
	{
		printf(" ERR: waktu tidak mungkin !\r\n");
		return;
	}*/
	//rtc_set_time_tm( tmku );
	rtcWrite( &tmku );
	//clk = mktime(&tmku);	
	//ret = rtc_time_to_bfin(clk);
	//bfin_write_RTC_STAT(ret);
	vPortFree(str_rtc);
	printf(" ..OK\r\n");
}							 
示例#7
0
文件: main.c 项目: elsuizo/sAPI
/* FUNCION PRINCIPAL, PUNTO DE ENTRADA AL PROGRAMA LUEGO DE RESET. */
int main(void){

   /* ------------- INICIALIZACIONES ------------- */

   /* Inicializar la placa */
   boardConfig();

   /* Inicializar el conteo de Ticks con resolución de 1ms, sin tickHook */
   tickConfig( 1, 0 );

   /* Inicializar DigitalIO */
   digitalConfig( 0, ENABLE_DIGITAL_IO );

   /* Configuración de pines de entrada para Teclas de la CIAA-NXP */
   digitalConfig( TEC1, INPUT );
   digitalConfig( TEC2, INPUT );
   digitalConfig( TEC3, INPUT );
   digitalConfig( TEC4, INPUT );

   /* Configuración de pines de salida para Leds de la CIAA-NXP */
   digitalConfig( LEDR, OUTPUT );
   digitalConfig( LEDG, OUTPUT );
   digitalConfig( LEDB, OUTPUT );
   digitalConfig( LED1, OUTPUT );
   digitalConfig( LED2, OUTPUT );
   digitalConfig( LED3, OUTPUT );

   /* Inicializar UART_USB a 115200 baudios */
   uartConfig( UART_USB, 115200 );
   
   /* Estructura RTC */
   RTC_t rtc;
   
   rtc.year = 2016;
   rtc.month = 7;
   rtc.mday = 3;
   rtc.wday = 1;
   rtc.hour = 13;
   rtc.min = 17;
   rtc.sec= 0;

   bool_t val = 0;
   uint8_t i = 0;

   /* Inicializar RTC */
   val = rtcConfig( &rtc );

   delay_t delay1s;
   delayConfig( &delay1s, 1000 );
   
   delay(2000);
   
   for( i=0; i<10; i++ ){
      /* Leer fecha y hora */
      val = rtcRead( &rtc );
      /* Mostrar fecha y hora en formato "DD/MM/YYYY, HH:MM:SS" */
      showDateAndTime( &rtc );
      delay(1000);
   }
   
   rtc.year = 2016;
   rtc.month = 7;
   rtc.mday = 3;
   rtc.wday = 1;
   rtc.hour = 14;
   rtc.min = 30;
   rtc.sec= 0;
   
   /* Establecer fecha y hora */
   val = rtcWrite( &rtc );

   /* ------------- REPETIR POR SIEMPRE ------------- */
   while(1) {

      if( delayRead( &delay1s ) ){
         /* Leer fecha y hora */
         val = rtcRead( &rtc );
         /* Mostrar fecha y hora en formato "DD/MM/YYYY, HH:MM:SS" */
         showDateAndTime( &rtc );
      }

   }

   /* NO DEBE LLEGAR NUNCA AQUI, debido a que a este programa no es llamado
      por ningun S.O. */
   return 0 ;
}