从c中的微控制器tm4c123获取时间戳

get the timestamp from microcontroller tm4c123 in c

我在一个使用微控制器 TM4C123 的小项目中工作。所以我想将数据从 microntroller 发送到 c 中的另一个微控制器。微控制器 TM4C123 具有 RTC 模块。所以我可以从那个微控制器得到时间。但是我不知道应该调用哪种方法来获取时间。有一个头文件 time.h 但我知道,我应该使用哪种方法。我的 data.Any 想法需要时间戳吗?

在嵌入式世界中,我们通常必须手工完成所有工作。在没有一些额外框架的情况下使用外围设备的预定义方法并不常见。微控制器的外围设备(包括实时时钟)通常通过寄存器连接。

芯片供应商通常会提供一些将地址映射到 variable/symbolic 常量名称的头文件,以便您可以轻松 read/write 它们。然后,您需要阅读数据表以确定 read/write 寄存器的内容以实现您想要的行为。

您很可能希望设置自己的定时器函数,例如 init_timer 和 get_current_time_stamp,它们依次适当地访问这些寄存器。祝你好运。

此外,请记住微控制器的 RTC 不太可能是非易失性的。这意味着它将在通电时重置。因此你需要想出一些电池方案来让它跟踪时间。

嗯,我是这样解决问题的:

int main(void){
    SysCtlClockSet(SYSCTL_OSC_MAIN);

   //enable the hibernation module
  SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE);

  //SYSCTL_OSC_EXT32 is the rate of the clock supplied to the Hibernation
  HibernateEnableExpClk(SYSCTL_OSC_EXT32); 
  HibernateClockConfig(HIBERNATE_OSC_HIGHDRIVE);
  HibernateRTCDisable();

   //set the value to 0
   HibernateRTCSet(0);
   HibernateRTCEnable();

   //get starting values
   unsigned long long sec = HibernateRTCGet();
   unsigned int subsec =  HibernateRTCSSGet(); 

    while(1){

         sec= HibernateRTCGet();
         subsec=HibernateRTCSSGet() 

    }
 }

这段代码展示了如何通过休眠模块使用实时时钟。 RTC 的时钟信号由外部 32.768-kHz 振荡器提供。应该记住,RTC 会在开机时重置。