芯启元 发表于 2026-7-2 13:26:30

32-通过定时器周期性调度任务综合例程,简单实用的任务调度系统,推荐

32-通过定时器周期性调度任务综合例程,简单实用的任务调度系统,推荐,STC32G144K246实验箱演示程序
主程序main.C代码如下(汇编版本在附件中):

/*---------------------------------------------------------------------*/
/* --- Web: www.STCAI.com ---------------------------------------------*/
/* --- BBS: www.STCAIMCU.com-----------------------------------------*/
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序      */
/*---------------------------------------------------------------------*/





#include "Task.h"
#include "System_init.h"

/*************      功能说明      **************

本例程基于STC32G144K246为主控芯片的实验箱进行编写测试。

使用Timer0的16位自动重装来产生1ms节拍,程序使用这个节拍进行任务调度.

每个任务设置相应的调度周期,根据设置的周期时间执行任务函数.

1. 左边4位LED显示时间(小时,分钟).
2. 右边4位数码管显示温度值, 分辨率0.1度.
3. 矩阵键盘扫描,按一个按键蜂鸣器响一下.
4. ADC按键 “0”:小时+; “1”:小时-; “2”:分钟+; “3”:分钟-.
5. 串口2通过实验箱USB2接口的CDC2 COM口打印时钟信息.

下载时, 选择IRC频率 48MHz,主时钟使用 PLL 90MHz 时钟频率.

******************************************/

//========================================================================
// 函数: void main(void)
// 描述: 主函数程序.
// 参数: None.
// 返回: None.
// 版本: V1.0, 2025-12-05
//========================================================================
void main(void)
{
    EAXFR = 1; //扩展寄存器(XFR)访问使能
    CKCON = 0; //提高访问XRAM速度

    SYS_Init();

    while (1)
    {
      Task_Pro_Handler_Callback();
    }
}


页: [1]
查看完整版本: 32-通过定时器周期性调度任务综合例程,简单实用的任务调度系统,推荐