查看: 3858|回复: 0

[原创] 【LPC54114双核任务二】基于虚拟串口通讯的RTC模拟计时器

[复制链接]
  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7125
    最后登录
    2023-4-20
    发表于 2017-7-2 10:49:30 | 显示全部楼层 |阅读模式
    功能:使用串口通讯发送计时器的起始时间,在使用软件获取系统时间的情况下可起到校时的作用。
    随后便自动启动计时器,并依据进制开始计数,在计数间隔为1秒的情况下即起到RTC计时器的效果,详见下图所示。
    图片1.png

    具体程序如下:
    1. uint8_t  u[8];
    2. int main(void)
    3. {
    4.         SystemCoreClockUpdate();
    5.         Chip_GPIO_Init(LPC_GPIO);
    6.         Chip_GPIO_SetPinDIR(LPC_GPIO,0, 22, true);
    7.     Chip_GPIO_SetPinState(LPC_GPIO,0, 22, true);        
    8.         Chip_UART_Init(LPC_USART0);
    9.         Chip_UART_Init(LPC_USART0);
    10.         Chip_UART_SetBaud(LPC_USART0, 115200);
    11.         Chip_UART_ConfigData(LPC_USART0, UART_CFG_DATALEN_8 | UART_CFG_PARITY_NONE | UART_CFG_STOPLEN_1);
    12.         Chip_UART_Enable(LPC_USART0);
    13.         Chip_UART_TXEnable(LPC_USART0);
    14.   Chip_UART_ReadBlocking(DEBUG_UART, u,8);
    15.         while (1)
    16.         {
    17.                 Delay_ms(1000);
    18.                 u[7]=u[7]+1;
    19.                 if(u[7]>'9')
    20.                 {
    21.                         u[7]='0';
    22.                         u[6]=u[6]+1;
    23.                         if(u[6]=='6')
    24.                         {
    25.                         u[7]='0';
    26.                         u[6]='0';        
    27.                         u[4]=u[4]+1;
    28.                         }
    29.                         if(u[4]>'9')
    30.                         {
    31.                         u[4]='0';               
    32.                         u[3]=u[3]+1;
    33.                         }
    34.                         if(u[3]=='6')
    35.                         {
    36.                         u[4]='0';
    37.                         u[3]='0';        
    38.                         u[1]=u[1]+1;
    39.                         }
    40.                         if(u[1]>'9')
    41.                         {
    42.                         u[1]='0';
    43.                         u[0]=u[0]+1;
    44.                         }
    45.                         if((u[0]=='2')&& (u[1]=='4'))
    46.                         {
    47.                         u[1]='0';
    48.                         u[0]='0';
    49.                         }
    50.                         
    51.                 }
    52.                 Chip_UART_SendBlocking(DEBUG_UART, u, 8);
    53.                 Chip_UART_SendBlocking(DEBUG_UART,"\r\n", 2);
    54.         }
    55. }
    复制代码


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-31 06:48 , Processed in 0.078201 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表