RTC 滴答计时器

 1. RTC 滴答计时器

1.1 寄存器配置

RTCCON RTC控制寄存器

[7:4] = 0000   设置频率

[8] = 1 使能滴答计时器

TICNT

32位滴答时间计数值。

滴答计时器是一个上行计数器。如果当前的滴答数达到这个值,滴答时间中断发生。

备注:该值必须大于3

周期= (n + 1)/滴答时钟源频率

(n =滴答计数器值)

rtc_tic----main.c


#include"exynos_4412.h"
#include"uart.h"

//rtc作为滴答定时器使用

/*
 * 滴答计时器初始化
 * 参数:tic :滴答时钟计数 32768HZ 输入
 * 初始化完成后自动开始
 */
void rtc_tic_init(unsigned int tic)
{
    //设置寄存器RTCCON[7:4]位,设置滴答计时器子时钟源选择,
    //这里设置为0000,及时钟源为32.768KHz
    RTCCON = RTCCON & (~(0xF << 4));

    //设置寄存器RTCCON[8]位置1,滴答计时器使能
    RTCCON = RTCCON | (0x1 << 8);

    //配置TICCNT寄存器,这里设置为32.768KHz,1s发生一次中断
    //周期= (n + 1)/滴答时钟源频率
    //(n =滴答计数器值)
    TICCNT = tic;

    //GIC 面向中断源
    //开启总中断
    ICDDCR = ICDDCR | 0x1;

    //配置端口中断使能
    ICDISER.ICDISER2 = ICDISER.ICDISER2 | (0x1 << 13);

    //配置端口优先级 优先级设置为5  rtc_alarm 中断id  77
    ICDIPR.ICDIPR19 = ICDIPR.ICDIPR19 & (~(0xFF << 8)) | (5 << 8);

    //配置中断源送去哪个cpu处理 0x1表示直送cpu0
    ICDIPTR.ICDIPTR19 = ICDIPTR.ICDIPTR19 & (~(0xFF << 8)) | (0x1 << 8);

    //GIC 面向cpu
    //cpu响应中断使能  =1 使能  =0 不使能
    CPU0.ICCICR = CPU0.ICCICR | 0x1;

    //配置cpu过滤优先级
    CPU0.ICCPMR = CPU0.ICCPMR | 255;

}

void rtc_tic_interrupt_clear(void)
{
    RTCINTP = RTCINTP | (0x1 << 0);   //清RTC中断标志位
    ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 << 13);  //清除GIC中断标志位
}

void do_irq(void)
{
    unsigned int irq_num;
    irq_num = CPU0.ICCIAR & 0x3FF;  //获取中断号
    switch(irq_num)
    {
        case 77:
        rtc_tic_interrupt_clear();
        printf("rtc_tic time interrupt!\r\n");
        break;

    }

    //最后清除cpu中断挂起
    //写入中断id清除对应中断挂起
    CPU0.ICCEOIR = irq_num;

}
int main()
{
    int a = 100;
    uart_init();
    printf("hello!a=%d\r\n",a);

    //周期= (n + 1)/滴答时钟源频率
    //(n =滴答计数器值)
    rtc_tic_init(32767);

    while(1);
    return 0;
}


相关推荐

  1. stm32中定时器与普通定时器的区别

    2024-02-01 07:16:04       44 阅读
  2. STM32系统定时器SysTick实现精确ms和us延时

    2024-02-01 07:16:04       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 07:16:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 07:16:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 07:16:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 07:16:04       20 阅读

热门阅读

  1. 什么是系统工程(字幕)13

    2024-02-01 07:16:04       27 阅读
  2. 开发中常用的数据结构

    2024-02-01 07:16:04       29 阅读
  3. 36.【TypeScript 教程】tsconfig.json 配置

    2024-02-01 07:16:04       23 阅读
  4. 理解React中的setState()方法

    2024-02-01 07:16:04       31 阅读
  5. pyspark学习-spark.sql.functions normal函数

    2024-02-01 07:16:04       30 阅读
  6. Docker学习笔记:Dockerfile文件的应用

    2024-02-01 07:16:04       34 阅读