久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2228|回復: 1
打印 上一主題 下一主題
收起左側

ESK32-360開發板的RTC計時器

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 jinglixixi 于 2020-8-3 09:44 編輯

1. RTC基本使用
在例程中,提供了RTC的實驗示例,在串口的配合下可以設置RTC的初始數值,并通過串口來輸出RTC計時值,其運行效果如圖1所示。

圖1 串口設置和顯示RTC計時值


2. RTC計時器
為了能直觀地來顯示RTC計時值,可通過TFT顯示屏來實現,所用到的主要為數值顯示函數。
改造后的計時顯示函數為:
  1. void AP_Time_Show(void)
  2. {
  3.          AP_Time_Count(&CurTime);
  4.          LCD_ShowNum(Line6,22,CurTime.year,4);
  5.          LCD_CharDisplay(Line6,84, '-');
  6.          LCD_ShowNum(Line6,100,CurTime.month,2);
  7.          LCD_CharDisplay(Line6,132, '-');
  8.          LCD_ShowNum(Line6,148,CurTime.day,2);
  9.          
  10.          LCD_ShowNum(Line7,52,CurTime.hour,2);
  11.          LCD_CharDisplay(Line7,84, ':');
  12.          LCD_ShowNum(Line7,100,CurTime.minute,2);
  13.          LCD_CharDisplay(Line7, 132,':');     
  14.          LCD_ShowNum(Line7,148,CurTime.second,2);
  15. }
復制代碼

主程序的內容為:
  1. int main(void)
  2. {
  3.   CKCU_PeripClockConfig_TypeDef CKCUClock = {{0}};
  4.   CKCUClock.Bit.BKP        = 1;
  5.   CKCU_PeripClockConfig(CKCUClock, ENABLE);
  6.   if(PWRCU_CheckReadyAccessed() != PWRCU_OK)
  7.   {
  8.    while (1);
  9.   }
  10.   HT32F_DVB_LEDInit(HT_LED1);
  11.   RETARGET_Configuration();
  12.   NVIC_EnableIRQ(RTC_IRQn);
  13.   if(PWRCU_GetFlagStatus() == PWRCU_FLAG_BAKPOR)
  14.   {
  15.     LCD_StringLineDisplay(Line5," Power On Reset occurred!");
  16.   }
  17.   LCD_Init();
  18.   LCD_Config();
  19.   LCD_BackColorSet(Black);
  20.   LCD_TextColorSet(Red);
  21.   LCD_StringLineDisplay(Line3," LCD_RTC TEST");
  22.   LCD_TextColorSet(Yellow);
  23.   
  24.   if(PWRCU_ReadBackupRegister((PWRCU_BAKREG_Enum) PWRCU_BAKREG_0_RTC_KEY) !=0xAA55A5A5)
  25.   {
  26.          LCD_StringLineDisplay(Line5, "RTC not yet configured!");
  27.          LCD_StringLineDisplay(Line6, "   -  -            ");
  28.          LCD_StringLineDisplay(Line7,"    :  : ");
  29.          RTC_Configuration();
  30.    
  31.    #if 1
  32.    AP_Time_Init(&DateTime);
  33.    #else
  34.    DateTime.year   = 2020;
  35.    DateTime.month  = 7;
  36.    DateTime.day    = 25;
  37.    DateTime.hour   = 22;
  38.    DateTime.minute = 5;
  39.    DateTime.second = 0;
  40.    #endif
  41.    
  42.    if (!AP_Time_Adjust(&DateTime))
  43.    {
  44.             LCD_StringLineDisplay(Line5, "Adjusttime error!");
  45.             while(1);
  46.     }
  47.     RTC_Cmd(ENABLE);
  48.     PWRCU_WriteBackupRegister((PWRCU_BAKREG_Enum)PWRCU_BAKREG_0_RTC_KEY, 0xAA55A5A5);
  49.   }
  50.    else
  51.   {
  52.                LCD_StringLineDisplay(Line5,"No need to configure RTC!");
  53.   }
  54.   LCD_TextColorSet(Yellow);
  55.   LCD_StringLineDisplay(Line5,"                    ");
  56.   while(1)
  57.   {
  58.     if (CK_SECOND_Flag)
  59.     {
  60.         CK_SECOND_Flag = 0;
  61.         AP_Time_Show();
  62.     }
  63.   }
  64. }

復制代碼

圖2  顯示RTC計時值

3. 時間設置與調整
  實現圖3所示的時間設置與調整函數為:
  1.   intf=1,n=0,m=23,c=0,a1=0,a2=0,a3=0;
  2.   while(f)
  3.   {
  4.    TmpStatus = GPIO_ReadInBit(HT_GPIOC, GPIO_PIN_15);
  5.    GPIO_WriteOutBits(HT_GPIOD, GPIO_PIN_0, !TmpStatus);  // !滅
  6.    if(TmpStatus) n++;    //  増值
  7.    if(n>m)n=0;
  8.    
  9.    TmpStatus = GPIO_ReadInBit(HT_GPIOD, GPIO_PIN_1);
  10.    GPIO_WriteOutBits(HT_GPIOD, GPIO_PIN_2, TmpStatus);  // 亮
  11.     if(TmpStatus==0)     //  切換
  12.     {
  13.        c++;
  14.        if(c>2) c=0;
  15.        if(c==0) m=23;
  16.        if(c==1) m=59;
  17.        if(c==2) m=59;
  18.     }
  19.     TmpStatus = GPIO_ReadInBit(HT_GPIOB,GPIO_PIN_9);
  20.     GPIO_WriteOutBits(HT_GPIOB, GPIO_PIN_6,TmpStatus);  // 亮
  21.     if(TmpStatus==0)f=0;   // 退出
  22.          
  23.    if(c==0)a1=n;
  24.    if(c==1) a2=n;
  25.    if(c==2) a3=n;
  26.    LCD_ShowNum(Line7,52,a1,2);
  27.    LCD_CharDisplay(Line7,84, ':');
  28.    LCD_ShowNum(Line7,100,a2,2);
  29.    LCD_CharDisplay(Line7, 132,':');
  30.    LCD_ShowNum(Line7,148,a3,2);
  31.    delay(300);
  32. }
復制代碼

圖3 數據設置與調整


在數據設置時,以Wakeup鍵來調整數值的大小,以Key1來切換設置項(確定是時、分、秒),以Key2來確認設置操作。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:776997 發表于 2020-8-4 08:44 | 只看該作者
感謝鼓勵!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 自拍偷拍亚洲视频 | 日本不卡视频在线播放 | 国产免费xxx | 黄色一级视频免费 | 欧美成人a∨高清免费观看 色999日韩 | 狠狠操狠狠色 | 久久国 | 国产精品视频在 | 7777奇米影视 | 国产一区二区三区四区 | 欧美性受xxxx白人性爽 | 久久久久91 | av在线天堂| 国产在线精品一区二区 | 中文字幕视频在线看 | 欧美精品一区二区三区在线 | 精品一区二区久久久久久久网精 | 国产aa | 久久久久九九九女人毛片 | 欧美激情久久久 | 99久久精品国产毛片 | 一区二区三区不卡视频 | 热99在线| 影音先锋成人资源 | 久久久久久精 | 国产高清在线观看 | 亚洲国产精品久久久久 | 欧美黄色大片在线观看 | 成人毛片视频在线播放 | 中文字幕在线视频免费观看 | 久久国产美女视频 | 亚洲精品久久久久中文字幕二区 | 久久久久国产精品 | 精品日韩一区 | 成人a在线观看 | 激情综合五月 | 99亚洲 | 国产福利视频 | 亚洲欧美日韩精品久久亚洲区 | 国产成人精品一区二区三区四区 | 精品中文在线 |