单片机编程思路问题

[复制链接]
 楼主| tuzihog 发表于 2011-12-16 13:39 | 显示全部楼层 |阅读模式

基本定时器0.064ms中断一次,在ISR中将标志位加1,在main()中循环检测该标志位的值,当标志位等于特定的一些值(值1,值2,值3,值4,值5)时去执行不同的函数
#pragma vector=BASICTIMER_VECTOR
__interrupt void basic_timer_ISR(void)
{

if (bt_flag < 65535)


bt_flag += 1;


if (bt_flag == 65535)


IE2 &= ~BTIE;

}

main()
{



while(1)

{


if (bt_flag ==
1)


F_D4 ();


else if (bt_flag ==
2,值3,值4)


F_DA();



else if(bt_flag ==
5)



subnetwork_judgment();



else ;


}

}


那位大侠能指点一下这个思路的可行性,以及注意点!
Thunder_f 发表于 2011-12-16 13:44 | 显示全部楼层
行不行还是自己测试一下比较好
 楼主| tuzihog 发表于 2011-12-16 13:45 | 显示全部楼层
呵呵!其实已经出问题了,只是还不确认是不是这个思路的问题
Thunder_f 发表于 2011-12-16 13:58 | 显示全部楼层
不知道你要达到什么目的,思路对不对要根据目的来说的。
zhouyuejun33 发表于 2011-12-16 14:00 | 显示全部楼层
不错思路
 楼主| tuzihog 发表于 2011-12-16 14:03 | 显示全部楼层
目的就是要让while(1)循环中的三个函数顺次执行一遍。
Thunder_f 发表于 2011-12-16 14:08 | 显示全部楼层
如果只是顺序执行一遍,似乎不用定时的方法这么复杂啊
应该还有没说清楚的目的,:lol
受不了了 发表于 2011-12-16 14:23 | 显示全部楼层
0.064ms=64uS,51的话来不及
ayb_ice 发表于 2011-12-16 14:27 | 显示全部楼层
基本思路没有问题,但必须严格考虑同步的问题
比如:
中断时bt_flag=5,但主程序刚过判断bt_flag==5,错过了,主程序下次再次判断bt_flag==5时,又来了中断,中断返回时已经bt_flag=6了,问题其实很严重,但解决容易,关键是是否意识到
liang7143 发表于 2011-12-16 14:30 | 显示全部楼层
不是很清楚LZ想表达啥意思

LZ是不是想 实现时间触发事件
比如10ms 扫描按键 20ms AD采样……
LZ这种思路 简单实用 实时性要求不是很高时 是个不错的思路
老鱼探戈 发表于 2011-12-16 14:57 | 显示全部楼层
如果主循环一次的时间不超过中断时间是没什么问题的。反之不可.因“==”判断很可能会错过。建议出相应表志位,主程用完清.即消息机制。

评分

参与人数 2威望 +9 收起 理由
tuzihog + 1 一语惊醒梦中人
谈的元 + 8

查看全部评分

 楼主| tuzihog 发表于 2011-12-16 15:59 | 显示全部楼层
谢谢楼上各位的捧场
主要目的是while(1)这个循环一直执行,即不在bt_flag == 65535的时候关上定时中断。
我再考虑一下上面几位的回复,真的很有道理!
 楼主| tuzihog 发表于 2011-12-16 16:10 | 显示全部楼层
特别感谢9楼的ayb_ice和11楼的老鱼
我有点明白了!
再考虑一下9楼未点透的话:lol
chejun86 发表于 2011-12-16 17:01 | 显示全部楼层
额~~~你这用得是不是合泰的IC?
 楼主| tuzihog 发表于 2011-12-16 17:30 | 显示全部楼层
mcu是TI的msp430
lhw520620 发表于 2011-12-16 20:55 | 显示全部楼层
 楼主| tuzihog 发表于 2011-12-16 21:04 | 显示全部楼层
是啊!调度设计很难作,现在还是不能有个很好的思路来解决问题!再考虑考虑!
 楼主| tuzihog 发表于 2011-12-17 08:01 | 显示全部楼层
本帖最后由 tuzihog 于 2011-12-17 08:02 编辑

http://www.ti.com/mcu/docs/litab ... ryId=1&familyId=342

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
fjzzclc 发表于 2011-12-17 09:02 | 显示全部楼层
储小勇_526 发表于 2011-12-17 12:29 | 显示全部楼层
:victory:学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

657

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部