zigbee stack 任务被中断后终止任务的方法

本文只是自己在开发项目中遇到的一个小问题,特备有意思,特意记录下.

在开发电机启动过程中,使用pwm来做缓启动和缓停止,由于在zigbee stack中是事件驱动的,所以只有一个任务处理完成了才能切换到下一个任务,但这在以下场景中是有问题的,假设电机启动要1s,进行正向转动,那么此时来个中断,要电机反向转动,一般的常规方法,只能等待电机启动完成,电机正常运转后退出启动任务时才能执行电机反转的任务,很明显,这是不正确的,假设一个场景,有人在启动过程中被夹住了,继续启动只能被夹的更严重,所以这种事不合适的,那么如果让启动过程立即停止,进而执行反向启动过程就很重要.在我的项目中使用一个局部变量来计算端口通电的时间,如下:

int cycle=500;    

for (int i = 0; i < cycle; i++) {

          fwd=off;

          delay(i);

          fwd=on;

          delay(cycle - i);

        }

使用 i 来决定few为on 和off的时间,那么如果进入中断后直接将 i 和 cycle相同,那么在下一次循环就能够退出for循环,进而退出任务,可以快速的切换到下一个任务,去执行反向转动的启动.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这个不错分享给大家,从扣上看到的,就转过来了 《电脑专业英语》 file [fail] n. 文件;v. 保存文...
    麦子先生R阅读 11,855评论 5 24
  • 前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Jav...
    Java高级架构狮阅读 3,619评论 0 2
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 11,312评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 11,823评论 0 2
  • 今天上午陪老妈看病,下午健身房跑步,晚上想想今天还没有断舍离,马上做,衣架和旁边的的布衣架,一看乱乱,又想想自己是...
    影子3623253阅读 7,985评论 3 8

友情链接更多精彩内容