Tool/software: Code Composer Studio
Hi All,
My platform is TM4C123GH6PGE
CCS version 6.2,
I am doing Solar Tracker project based on Real Time clock,
I am facing problem in RTC , My Clock is working but it,s time(Seconds) increment compare to Ideal Real time clock is much faster and I am using RTC Crystal value 32.768 KHz.
My RTC code is ......
//
// Hibernate handler
//
//*****************************************************************************
void HibernateHandler(void)
{
// reset interrupt flag
uint32_t ui32Status = HibernateIntStatus(1);
HibernateIntClear(ui32Status);
//asd++;
calendar_read = HibernateRTCGet();
ulocaltime(calendar_read, &tm2);
//zxc=tm1.tm_hour;
// format the output for uart
strftime((char *)buf_rz, 60, "%c\r\n", &tm2);
strftime(rtc_lcd_h, 4, "%H", &tm2);
strftime(rtc_lcd_m, 4, "%M", &tm2);
strftime(rtc_lcd_s, 4, "%S", &tm2);
HibernateRTCMatchSet(0,calendar_read+1);
// HibernateRTCMatchSet(0,HibernateRTCGet()+5);
// UARTSend((uint8_t *)buf_rz, 60);
//calendar_read=mktime(&tm1);
ADCIntClear(ADC0_BASE, 0);
ADCProcessorTrigger(ADC0_BASE, 0);
}
main()
{
//set system clock to 50 MHz
MAP_SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE);
IntMasterEnable();
IntPrioritySet( INT_HIBERNATE_TM4C123, 0x40);
//***********************************Hibernate****************************************************************************
HibernateEnableExpClk(SysCtlClockGet());
HibernateRTCTrimSet(0x7FFF);
HibernateRTCEnable();
SysCtlDelay(SysCtlClockGet() / 12);
HibernateClockConfig(HIBERNATE_OSC_HIGHDRIVE);
HibernateIntRegister(HibernateHandler);
HibernateIntEnable(HIBERNATE_INT_RTC_MATCH_0);
HibernateWakeSet(HIBERNATE_WAKE_RTC);
HibernateRTCMatchSet(0,HibernateRTCGet()+4);
// HibernateRTCMatchSet(0,5);
HibernateCounterMode(HIBERNATE_COUNTER_24HR);
HibernateCalendarSet(&tm1);
//
//*************************************************************************************************
//
/*
calendar_write = umktime(&tm1);
if (calendar_write == (uint32_t)(-1)){
// UARTSend((uint8_t *)buf_er, sizeof(buf_er));
while(1);
}
else {
HibernateRTCSet(calendar_write);
//Set an interrupt for the RTC after one second.
HibernateRTCMatchSet(0,HibernateRTCGet()+5);
}
*/
//
//**************************************************************************************************
//
}
How to fix this issue? Plz give the response as soon as possible!!!!!!!!
Thanking you!