RTOS 任务下的变量问题

#事情是这样的

那天我想给RTOS单一个任务计算其执行次数

期间怀疑了好多次:
是不是任务切换时将变量的数据清除了
是不是没有分配到内存
是不是需要用到全局变量

期间出现的问题

printf中的“%d”确实在递增 但是是从-151809然后-151808这样开始递增,给
unsighed int num;也是无法从头开始,通过定义为short int将printf的数值缩小到23502改为uint8_t将数值缩小到了166但是依然是没有办法获得想要的从0开始累加

但是一设置为num=0之后printf 一直输出为0

发现问题在于task中是利用死循环while(1)使task的内容一直处于运行状态
如果将一些设定和声明置于循环之中 会令任务每次回来执行的时候都会重新初始化因此不是所有的任务内容都置于while(1)
最后结果图在这里插入图片描述

其实可以尝试使用static来修饰 这样也许也能解决这个问题

与此同时,试过将声明变量置于start_task任务开始之前

但是都无济于事,这是为什么?目前不明 希望大佬赐教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值