澳洲国际AB亚洲馆开奖时刻表: [学习笔记] 【AutoChips 7801x MCU评测报告】六、RTC

禁止游客赌场登入
227|2
楼主
      本次实验使用RTC模块产生100ms的计数中断驱动板上的LED2闪烁,澳洲国际AB亚洲馆开奖时刻表:同时使能了PA13端口上的RTC_CLKOUT。利用逻辑分析仪捕捉这两个端口上的信号,过程中分别使用了APB时钟(24MHz)、LSI时钟(32KHz)进行对比。具体实验过程如下:

一、实验资源
1、AC7801x开发板;
2、AutoGen Studio 1.3.0;
3、KEIL 5.28.0.0;
4、ST-LINK2;
5、逻辑分析仪;

二、资源简介
模块功能比较简单,在“Standby”Standby低功耗模式下可保持运行并唤醒MCU。




      RTC支持多种时钟源,实验中分别选用了24MHz的APB时钟和32KHz的LSI时钟。下面是官方文档中的一些相关说明,对于RTC模块的使用具有指导作用。




三、代码实现
24MHz的APB时钟配置:
  1. void ATC_RTC_Init(void)
  2. {
  3.     RTC_ConfigType rtcConfig;

  4.     MSP_RTC_Init(RTC);

  5.     rtcConfig.clockSource = RTC_CLOCK_APB;
  6.     rtcConfig.rtcOutEn = ENABLE;
  7.     rtcConfig.rtcInterruptEn = ENABLE;
  8.     rtcConfig.psrInterruptEn = ENABLE;
  9.     rtcConfig.periodValue = 99;
  10.     rtcConfig.psrValue = 23999;
  11.     rtcConfig.callBack = RTC_IRQHandler_Callback;

  12.     RTC_Init(&rtcConfig);
  13. }
复制代码

32KHz的LSI时钟配置:
  1. void ATC_RTC_Init(void)
  2. {
  3.     RTC_ConfigType rtcConfig;

  4.     MSP_RTC_Init(RTC);

  5.     rtcConfig.clockSource = RTC_CLOCK_LSI;
  6.     rtcConfig.rtcOutEn = ENABLE;
  7.     rtcConfig.rtcInterruptEn = ENABLE;
  8.     rtcConfig.psrInterruptEn = ENABLE;
  9.     rtcConfig.periodValue = 9;
  10.     rtcConfig.psrValue = 319;
  11.     rtcConfig.callBack = RTC_IRQHandler_Callback;

  12.     RTC_Init(&rtcConfig);
  13. }
复制代码

中断回调:
  1. /**
  2. * [url=home.php?mod=space&uid=247401]@brief[/url] This function handle RTC interrupt.
  3. * @param[in] device: RTC_Type pointer
  4. * @param[in] wpara: callback parameter
  5. * @param[in] lpara: callback parameter
  6. * [url=home.php?mod=space&uid=266161]@return[/url] none
  7. */
  8. void RTC_IRQHandler_Callback(void *device, uint32_t wpara, uint32_t lpara)
  9. {
  10.     if (wpara & RTC_SC_RPIF_Msk)
  11.     {
  12.         /* USER CODE BEGIN PRESCALER INTERRUPT */

  13.         /* USER CODE END PRESCALER INTERRUPT */
  14.     }

  15.     if (wpara & RTC_SC_RTIF_Msk)
  16.     {
  17.         /* USER CODE BEGIN OVERFLOW INTERRUPT */
  18.                 if(LED2_flag)
  19.                 {
  20.                         LED2_flag=0;
  21.                         GPIO_SetPinBit(GPIOC, GPIO_PIN9);
  22.                 }
  23.                 else
  24.                 {
  25.                         LED2_flag=1;
  26.                         GPIO_ResetPinBit(GPIOC, GPIO_PIN9);
  27.                 }
  28.         /* USER CODE END OVERFLOW INTERRUPT */
  29.     }

  30.     /* USER CODE BEGIN RTC_IRQHandler_Callback */

  31.     /* USER CODE END RTC_IRQHandler_Callback */
  32. }
复制代码

四、实验结果
24MHz的APB时钟:


32KHz的LSI时钟:

通过对比发现,LSI时钟与预期数值误差相对略大一点。

五、实验总结
      本次实验内容比较简单,但是整个过程还是学习了很多知识,对AC7801x微控制器也多了份了解。
      另外,上次实验后开发板出了点问题,无论是J-LINK还是ST-LINK都无法识别芯片了。本次实验程序的下载都是采用先按住开发板上的复位键,然后再点击“download”,紧接着就是掌握好火候松开复位键,程序便可以下载并且能正常运行。不知是什么原因造成的,电脑重新开机也不行。玩着有点累了。如:





沙发
| 2020-6-22 09:57 | 只看该作者
1.现在的7801是工程片阶段,所以LSI没经过校准,会有一些偏差。
2.PA13端口本来是调试口,但你使能为RTC_CLKOUT功能了。可能是这个原因导致你的程序不能正常下载。建议在使能为RTC_CLKOUT前,delay一段时间。以便后续复位后能烧写程序
板凳
 楼主 | 2020-6-22 10:55 | 只看该作者
RunningX 发表于 2020-6-22 09:57
1.现在的7801是工程片阶段,所以LSI没经过校准,会有一些偏差。
2.PA13端口本来是调试口,但你使能为RTC_CL ...

应该是您说的原因,过程中忽视了PA13的SWCLK功能。谢谢!
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

禁止游客赌场登入 永利游戏开户直营 返回顶部 返回列表
申博太阳城游戏登入不了现金网 禁止游客赌场登入 4567彩票代理 澳门金沙娱乐场安全吗 好彩票网址
广东会馆娱乐 www.0033nsb.com登入官网 申博太阳城现金网直营网 必赢手机app OG东方馆真人娱乐平台官方网
pt完美21点 pt派通娱乐 汇丰HG名人馆开奖直播 钱柜广东快乐十分开奖 葡京SUNBET申博最牛攻略
pt狂热足球 正大国际PT电子开奖直播 威尼斯人娱乐平台登入 永利北京PK10开奖号历史 澳门星际国际赌场登入