OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3363|回复: 0

将原来的程序改为UCOS系统

[复制链接]

62

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
280
金钱
280
注册时间
2015-6-11
在线时间
56 小时
发表于 2022-12-12 16:30:52 | 显示全部楼层 |阅读模式
1金钱
//USART3 发送任务
void USART3_send_task(void *p_arg)
{
    u8 i=0;
    u8 m=0;
       
        OS_ERR err;
        p_arg = p_arg;
       
        while(1)
        {
/************************************主体部分******************************************************/               
                if(i<200) i++;
                if(USART3_CS)             continue;
                if(reg_rs||i>125) //未处于发送状态时返回,限时400ms
                {
                        i=0;
                        if(++m%3)//3次中有1次进入else选项
                        {
                                if(reg_sendup3)
                                {
                                        USART3_send_cj(0x11,0,0);//升档指令
                                        reg_sendup3--;
                                }
                                else if(reg_senddown3)
                                {
                                        USART3_send_cj(0x22,0,0);//降档指令
                                        reg_senddown3--;
                                }
                                else
                                        USART3_send_cj(0,0,0);//巡查指令
                        }
                        else
                                USART3_send_cj(0,0,0);//巡查指令
                }
///////////////////////////////////////////////////////////////////////////////////////////////////////////
                OSTimeDlyHMSM(0,0,0,4,OS_OPT_TIME_HMSM_STRICT,&err); //延时4ms
        }
}       

中间标出的“主体部分”是我原来的程序,放在一个普通的函数里,函数放在一个4ms的扫描任务中,当reg_rs变量不等于0时,或400ms超时后进入if内。每12ms进入一次巡查任务,另外2次,4ms一次进入判断升降档指令是否不等于0(按键按下后升降档指令reg_sendup3=10),发送最多10次命令,当对方回复后会立即清零reg_sendup3,即便对方未收到也最多发送10次。
现在已经把这个函数从原来的扫描任务中单独拿出来,放在一个ucos“任务”中,但是这样好像跟我原来的没什么区别,我尝试使用事件标志来代替reg_sendup3,但达不到我之前能达到的效果,请教一下怎么改好呢?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 07:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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