B.Rabbit 发表于 2014-10-10 15:38:33

飞思卡尔K64单片机编程问题(已解决)

本帖最后由 FSL_TICS_Robin 于 2014-11-27 10:28 编辑

请问有限状态机编程怎么由事件结束触发新事件开始?   程序写完总是不按着预想的执行   就是多个事件的每次执行次数都不一样    用的是K64单片机

FSL_TICS_DANIEL 发表于 2014-10-10 15:53:14

是用OS 来执行吗?

fengyunyu 发表于 2014-10-10 15:59:29

有限状态机编程,这个和用哪家单片机无关。

地主阿山 发表于 2014-10-10 16:09:15

[开源]阿莫蜘蛛进度报告 http://www.amobbs.com/thread-5590165-1-1.html 就是K64平台上应用状态机

步之道 发表于 2014-10-10 18:33:56

用状态机首先你要想清楚你有多少个状态,状态与状态之间是怎么切换的。如果没按照你设想的走,就是有你没想到的问题,建议加一个default,然后跳转回去,调试看一下

浪里白条 发表于 2014-10-10 21:13:58

没明白你的意思,能描述得更清楚吗?

步之道 发表于 2014-10-10 21:44:56

写个示意给你看一下吧


main()
        {
        u8 mark key;
      mark=0;
      key=1;
      wihile()
                {
                  if(key=1)
                        {               
               swhich mark:
                           case 0:   all led down             mark=1;
                           case 1:      led1 upelse downmark=2;
                           case 2:      led2 upelse downmark=3;
                           case 3:      led3 upelse downmark=4;
                           default:   all led up               mark=0;
                        }
                }
        }
上面写了一个当key按下等于1时,做一个规律的亮灯动作的。这应该是能算一个基本的状态机的思想了。
有人拍砖吗?千万别打脸,还要讨媳妇呢。

maimaige 发表于 2014-10-10 22:06:09

你是希望多个不同的事件按照顺序,依次执行?可以用一个互斥锁,或者信号量

maimaige 发表于 2014-10-10 22:07:30

多关注傻孩子,老师的帖子,

B.Rabbit 发表于 2014-10-14 21:55:04

地主阿山 发表于 2014-10-10 16:09
[开源]阿莫蜘蛛进度报告 http://www.amobbs.com/thread-5590165-1-1.html 就是K64平台上应 ...

谢谢啊    涨了不少知识

B.Rabbit 发表于 2014-10-14 21:55:55

步之道 发表于 2014-10-10 21:44
写个示意给你看一下吧




谢啦    第一次接触状态机的概念   很多都是不很懂

B.Rabbit 发表于 2014-10-14 21:56:46

maimaige 发表于 2014-10-10 22:07
多关注傻孩子,老师的帖子,

老师的帖子真的很强大
页: [1]
查看完整版本: 飞思卡尔K64单片机编程问题(已解决)