色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文搞懂Cortex-A9 RTC(下)

jf_78858299 ? 來源:土豆居士 ? 作者:土豆居士 ? 2023-05-26 15:21 ? 次閱讀

2. 操作滴答定時器

TICNT

圖片

TICNT

RTC計時器是一個遞增計數器,并引發計時中斷。TICNT寄存器包含32位目標計數值,并且CURTICCNT寄存器包含32位當前計時計數。如果當前滴答數達到TICNT中指定的目標值時,計時中斷發生。

一秒鐘計數的次數,由RTCCON[7:4]即TICCKSEL位決定:

圖片

TICCKSEL

因為我們的晶振頻率也是32768,為方便計數,所以我們設置RTCCON[7:4]為0,開啟滴答計時器需要設置RTCCON[8]位1:

圖片

TICEN

代碼如下:

RTCCON = RTCCON & (~(0xf << 4)) | (1 << 8);
 TICCNT = 32768;

3. 操作ALARM鬧鐘

RTCALM

圖片RTCALM寄存器控制報警功能的啟用和報警時間。請注意,RTCALM寄存器在斷電模式下將同時生成ALARM_INT和ALARM_WK信號,但在正常模式下僅生成ALARM_INT信號。設置ALMEN[6]為1以產生ALARM_INT和ALARM_WK信號。

「舉例:」

比如我們想每個小時的25分58秒產生一個中斷信號,那我們需要設置RTCALM[1]、RTCALM[0]為1,同時設置RTCALM[6]為1以開啟alarm功能,然后將BCD格式的時間設置到寄存器ALMSEC、ALMMIN。

代碼如下:

RTCALM.ALM = (1 << 6)|(1 << 0)|(1 << 1);//使能bite:MINEN、SECEN
 RTCALM.SEC = 0x58;
 RTCALM.MIN = 0x25;  //每小時25:58產生一次中斷

alarm功能設置鬧鐘時間寄存器如下:

圖片圖片圖片圖片圖片圖片寄存器操作,采用BCD格式。

五、完整代碼實現

滴答計時器和alarm鬧鐘會產生內部中斷信號,所以我們必須給這兩個中斷信號進行中斷相關的初始化,并在中斷處理函數中增加相應的處理代碼。

中斷號

參考datasheet 9.2.2 GIC Interrupt Table

圖片

rtc中斷號

關于中斷的初始化的寄存器配置,我們可以參考《11. 從0開始學ARM-基于Exynos4412中斷詳解、key程序編寫》

區別是,key連接在了第一級中斷控制器,而rtc的這兩個中斷則沒有。清中斷需要設置的寄存器如下:

「滴答計時器清中斷:」

RTCINTP  = RTCINTP | (1 << 0);
//清GIC中斷標志位
ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 << 13);
//清cpu中斷標志位
CPU0.ICCEOIR = CPU0.ICCEOIR&(~(0x3ff))|irq_num;

「alarm計時器清中斷:」

RTCINTP  = RTCINTP | (1 << 1);
//清GIC中斷標志位
ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 << 12);
//清cpu中斷標志位
CPU0.ICCEOIR = CPU0.ICCEOIR&(~(0x3ff))|irq_num;

「滴答計時器中斷初始化:」

void rtc_tic(void)
{
 RTCCON = RTCCON & (~(0xf << 4)) | (1 << 8);
 TICCNT = 32768;
 ICDDCR = 1;  //使能分配器
 ICDISER.ICDISER2 = ICDISER.ICDISER2 | (0x1 << 13); //使能相應中斷到分配器
 ICDIPTR.ICDIPTR19 = ICDIPTR.ICDIPTR19 & (~(0xff << 8))|(0x1 << 8); //選擇CPU接口
 CPU0.ICCPMR = 255; //中斷屏蔽優先級
 CPU0.ICCICR = 1;   //使能中斷到CPU
}

「alarm初始化」

void rtc_alarm(void)
{
 RTCALM.ALM = (1 << 6)|(1 << 0)|(1 << 1);
 RTCALM.SEC = 0x58;
 RTCALM.MIN = 0x25;  //每小時25:58產生一次中斷
 ICDDCR = 1;    //使能分配器
  //使能相應中斷到分配器
 ICDISER.ICDISER2 = ICDISER.ICDISER2 | (0x1 << 12);
 //選擇CPU接口
 ICDIPTR.ICDIPTR19 = ICDIPTR.ICDIPTR19 & (~(0xff << 0))|(0x1 << 0); 
 CPU0.ICCPMR = 255; //中斷屏蔽優先級
 CPU0.ICCICR = 1;   //使能中斷到CPU
}

「中斷處理函數」

void do_irq(void)
{
 static int a = 1;
 int irq_num;
 irq_num = CPU0.ICCIAR&0x3ff;  //獲取中斷號
 switch(irq_num)
 {
  case 57: //按鍵key
   printf("in the irq_handler\\n");
   //清GPIO中斷標志位
   EXT_INT41_PEND = EXT_INT41_PEND |((0x1 << 1)); 
   //清GIC中斷標志位
   ICDICPR.ICDICPR1 = ICDICPR.ICDICPR1 | (0x1 << 25); 
  break;
  case 76:
   printf("in the alarm interrupt!\\n");
   RTCINTP  = RTCINTP | (1 << 1);
   //清GIC中斷標志位
   ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 << 12); 
  break;
  case 77:
   printf("in the tic interrupt!\\n");
   RTCINTP  = RTCINTP | (1 << 0);
    //清GIC中斷標志位
   ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 << 13);
   break;
 }
 //清cpu中斷標志位
 CPU0.ICCEOIR = CPU0.ICCEOIR&(~(0x3ff))|irq_num; 
}

「其他代碼:」

void rtc_init(void)
{
 RTCCON = 1;//使能RTC控制寫功能
 RTC.BCDYEAR = 0x20;// 20201111日, 15:24:50.以BCD碼格式寫入
 RTC.BCDMON = 0x11;
 RTC.BCDDAY = 0x11;
 RTC.BCDHOUR = 0x15;
 RTC.BCDMIN = 0x24;
 RTC.BCDSEC = 0x50;
 RTCCON = 0;//關閉RTC控制寫功能
}
int main (void)
{     rtc_init();
  rtc_alarm();
  rtc_tic();
  //每隔一秒打印以下當前時間
  while(1)
  {
   printf("%x-%x-%x %x:%x:%x\\n",RTC.BCDYEAR,
   RTC.BCDMON,
   RTC.BCDDAY,
   RTC.BCDHOUR,
   RTC.BCDMIN,RTC.BCDSEC);
   delay_ms(1000);
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 集成電路
    +關注

    關注

    5387

    文章

    11534

    瀏覽量

    361652
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3587

    瀏覽量

    129438
  • 時鐘芯片
    +關注

    關注

    2

    文章

    249

    瀏覽量

    39879
  • RTC
    RTC
    +關注

    關注

    2

    文章

    538

    瀏覽量

    66471
收藏 人收藏

    評論

    相關推薦

    Cortex-A9處理器的精妙應用

    卡片電腦等等。并且通過開發板內的資料文檔可快速開發產品,縮短研發周期。 Cortex-A9代表——Rayeager PX2開發板 、微結構  1.Cortex-A9兩種微架構  可擴展
    發表于 11-03 17:02

    AM4379 Cortex-A9試用體驗

    (1)【創龍AM4379 Cortex-A9試用體驗】+ 開發板第次觸電【創龍AM4379 Cortex-A9試用體驗】搭建Linux開發環境【創龍AM4379 Cortex-A9
    發表于 08-29 17:45

    ARM Cortex-A9的具體開發流程有哪些

    Linux的常用命令該怎樣去使用呢?ARM Cortex-A9的具體開發流程有哪些?ARM Cortex-A9的開發流程與51的有什么不同?
    發表于 11-12 07:53

    Cortex-A9 MPCore 技術參考手冊

    Cortex-A9 MPCore技術參考手冊
    發表于 08-02 18:22

    Cortex-A9處理器技術參考手冊

    Cortex-A9處理器是款高性能、低功耗的ARM宏單元,具有L1緩存子系統,可提供完整的虛擬內存功能。Cortex-A9處理器實現ARMv7-A架構,在Jazelle?狀態
    發表于 08-02 16:29

    ARM Cortex-A9 MPCore 測試芯片技術手冊

    ARM Cortex-A9 MPCore 測試芯片技術手冊
    發表于 08-02 19:07

    Cortex-A9技術參考手冊

    Cortex-A9處理器是款高性能、低功耗的ARM宏單元,具有提供完整虛擬內存功能的級高速緩存子系統。 Cortex-A9處理器實現ARMv7-
    發表于 08-17 06:53

    ARM Cortex-A9 MPCore

    The ARM Cortex-A9 MPCore multicore processor integrates the proven and highly successful ARM MPCore
    發表于 07-11 09:47 ?89次下載

    Cortex-A9處理器系列

    Cortex-A9處理器系列,有需要的朋友下來看看。
    發表于 01-22 13:57 ?28次下載

    收獲塊功能強大價值的Cortex-A9 SoC開發板

    秋天是收獲的季節,您是否想靠自己的實力收獲塊功能強大價值150美元的Cortex-A9 SoC 開發板呢?
    的頭像 發表于 09-22 09:59 ?7422次閱讀

    Cortex-A9 MBIST ControllerTechnical Reference

    Cortex-A9 MBIST ControllerTechnical Reference
    發表于 10-26 08:59 ?8次下載
    <b class='flag-5'>Cortex-A9</b> MBIST ControllerTechnical Reference

    Altera SoC 合作伙伴研討會2013演講PPT——ARM Cortex-A9

    Altera SoC 合作伙伴研討會2013演講PPT——ARM Cortex-A9
    發表于 10-26 09:04 ?13次下載
    Altera SoC 合作伙伴研討會2013演講PPT——ARM <b class='flag-5'>Cortex-A9</b>

    cortex-a9是什么處理器_cortex-a9處理器介紹

    本文首先介紹了cortex-a9是什么處理器,其次介紹了cortex-a9處理器的單核與多核,最后闡述了cortex-a9處理器的特點及優勢。
    發表于 04-18 16:41 ?2.6w次閱讀

    ARM Cortex-A9芯片技術參考手冊

    ARM Cortex-A9技術參考手冊(TRM)描述了CortexA9處理器的單處理器版本,包括可選的預加載引擎。寄存器、指令、緩存、內存和內存接口指南。
    發表于 05-09 08:00 ?71次下載
    ARM <b class='flag-5'>Cortex-A9</b>芯片技術參考手冊

    搞懂Cortex-A9 RTC(上)

    RTC是集成電路,通常稱為時鐘芯片。在個嵌入式系統中,通常采用RTC來提供可靠的系統時間,包括時分秒和年月日等,而且要求在系統處于關機狀態它也能正常工作(通常采用后備電池供電)。
    的頭像 發表于 05-26 15:11 ?1394次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞懂</b><b class='flag-5'>Cortex-A9</b> <b class='flag-5'>RTC</b>(上)
    主站蜘蛛池模板: 久久精品国产欧美日韩99热| 国产精品xxxav免费视频| 国产久久re6免费热在线| 男人的天堂色| 亚洲色欲国产AV精品综合| 成人性生交大片免费看金瓶七仙女| 久久精品动漫网一区二区| 色戒西瓜视频| 成年免费三级视频| 欧美白妞大战非洲大炮| 最近的2019中文字幕国语| 韩国成人理伦片免费播放| 熟女强奷系列中文字幕| 北条麻妃のレズナンパ| 男女午夜性爽快免费视频不卡| 亚洲中文字幕国产综合| 国精产品一区一区三区有| 无遮掩H黄纯肉动漫在线观看星| 电影内射视频免费观看| 欧美亚洲色帝国| jiz中国zz| 国产在线精品亚洲视频在线| 久久精品国产欧美| 欧美日韩免费看| 伊人精品视频直播| 国产一区二区在线观看免费| 亚洲 欧美 日本 国产 高清| 国产成人在线视频免费观看| 偷偷要色偷偷| 国产午夜视频在线| 亚洲欧洲日韩天堂无吗| 久久合| 91传媒蜜桃香蕉在线观看| 嗯好舒服嗯好大好猛好爽| 办公室丝袜老师在线观看| 色吧电影院| 韩国无遮羞禁动漫在线观看 | 第七色男人天堂| 四虎永久在线精品国产| 韩国和日本免费不卡在线| 艺术片 快播|