[活动专区] 【AutoChips 7801x MCU评测报告】用AutoGen Studio重写官方RTC例程2个

禁止游客赌场登入
214|7
楼主
本贴把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自动生成工程结构和初始化代码,可以大幅提高开发效率,促进代码规范,还有助于理解芯片资源属性,建立全局观。赶紧上手吧

游客,如果您要查看本帖隐藏内容请回复



沙发
| 2020-6-22 10:42 | 只看该作者
用LED闪烁的效果来判断是否进入Stop模式,确实效果不错