16.3. 应用示例

#inlude <gx_rtc.h>

unsigned int tick1, tick2;

static int rtc_interrupt_callback(int irq, void *priv)
{
	gx_rtc_get_tick(&tick2);
	printf("tick1: %ld, tick2: %ld, Difference value: %ld\n", tick1, tick2, tick2 - tick1);
	return 0;
}

int rtc_example(void)
{
    unsigned int tick;

    // RTC 功能初始化
    gx_rtc_init();

    // 获取 tick 值
    gx_rtc_get_tick(&tick);

    // 设置 tick 值
    gx_rtc_set_tick(0);

    // 暂停 rtc 计数
    gx_rtc_stop_tick();

    // 启动 rtc 计数
    gx_rtc_start_tick();

    // 获取预分频后的 tick, 一般用预分频为 1Hz/s,获取到的就是秒数
    gx_rtc_get_sec();

    // 设置预分频后的 tick,一般用预分频为 1Hz/s,设置的就是秒数
    gx_rtc_set_sec();

    // alarm 中断设置,定时 10 秒
    gx_rtc_set_interrupt(rtc_interrupt_callback, NULL);
    gx_rtc_get_tick(&tick1);
    gx_rtc_set_alarm_time_s(10);
}