本贴把2个关于RTC的官方例程,修改为AutoGen Studio版本。
一、准备
下载 官网www.AutoChips.com --> 产品 --> MCU --> AC7801x --> 例程下载 --> AC7801x模块应用例程
官方例程还是挺多的:
目前例程已经更新至20200616了,而我用的是20200426的,看了一下,RTC例程新旧版本一致。
RTC路径下有2个例程,分别是:
1、RTC定时闪烁LED
2、RTC定时唤醒处于STOP模式的MCU
下面就用AutoGen Studio重新实现上述2个例程
二、用AutoGen重新实现官方例程RTC_timeout
1、打开AutoGen,新建工程,按下图箭头所指设置一下:
2、保存AutoGen工程,点击生成代码,最后用MDK打开生成的C代码工程。在生成的ac780x_irq_cb.c文件中,添加以下代码(红色的):
/* USER CODE BEGIN Includes */
#include "ac780x_gpio.h"
/* USER CODE END Includes */
//...
void RTC_IRQHandler_Callback(void *device, uint32_t wpara, uint32_t lpara)
{
if (wpara & RTC_SC_RPIF_Msk)
{
/* USER CODE BEGIN PRESCALER INTERRUPT */
/* USER CODE END PRESCALER INTERRUPT */
}
if (wpara & RTC_SC_RTIF_Msk)
{
/* USER CODE BEGIN OVERFLOW INTERRUPT */
static int8_t timer=0;
if(timer==0)
{
GPIO_SetPinLevel(GPIOC,GPIO_PIN9,GPIO_LEVEL_HIGH);
timer = 1;
}
else if(timer==1)
{
GPIO_SetPinLevel(GPIOC,GPIO_PIN9,GPIO_LEVEL_LOW);
timer = 0;
}
/* USER CODE END OVERFLOW INTERRUPT */
}
/* USER CODE BEGIN RTC_IRQHandler_Callback */
/* USER CODE END RTC_IRQHandler_Callback */
}
3、编译,下载到MCU,运行。可以看到绿色的LED2定时闪烁了。AutoGen工程及生成的MDK工程,在附件压缩包中。
三、用AutoGen重新实现官方例程RTC_wakeup
用AutoGen操作的步骤,基本和上一个例子相同,就不重复截图了。具体可打开附件中的AutoGen工程查看。
把官方例程中的代码,改了一下,效果更清晰、更容易理解,部分代码和注释截图如下:
全部工程(AutoGen、MDK)在附件中。
四、体会
用AutoGen Studio自动生成工程结构和初始化代码,可以大幅提高开发效率,促进代码规范,还有助于理解芯片资源属性,建立全局观。赶紧上手吧
|