[求助] msp430编程思路求指点

tuzihog   2011-12-20 10:02 楼主

MCU:msp430f449

基本定时器:0.064ms溢出一次,bt_flag++,取bt_flag的特定若干值(值1,值2,值3,45,6,7…….n,值n+1.)来唤醒睡眠中的mcu执行动作。main loop形式如下:

main()

{

…………….

……………

While(1)

{

入低功耗n;

等待基本定时器的bt_flag自增到特定的值,在bt_ISR中置位特定的标志位,修改SR唤醒MCU

执行标志位为1的那个任务。

}

 

 

basic_timer_ISR()

{

bt_flag++;

switch(bt_flag)

{

case 1 …………….;

break;

case 2 …………….;

break;

问题就在这里,下面的若干个特定值的个数是不确定的,特定值的形式如下所描述:

1040 + 0 * 160

1040 + 1 * 160

1040 + 2 * 160

1040 + 3 * 160

…………………

1040 + n * 160 

n的值是在case 2对应的任务中确定的。

现在我就是不知道怎么处理这个不固定的n?

请各位大侠指点一下。或者指点一下别的思路也可以!

 

 

 

}

回复评论 (4)

自己顶起来啊
点赞  2011-12-20 15:37
1. 使用switch 处理这样的操作是不太合适的。建议你先编写你的CASE里需要处理的函数列表。
2.  利用函数指针来处理你各种情况下的入口函数.
点赞  2011-12-20 18:13
好的,谢谢楼上的兄弟
其实我的程序已经有一个完整的版本了,现在是想换个思路试试
case里面的函数已经完成,
我再看看函数指针的内容!
点赞  2011-12-21 08:38
我自己再来解释一下这个项目的框架,好让大侠指点的时候有个针对点:
这是一个Zigbee定位的项目,这段代码是要实现mcu串口操作固定节点发送搜索指令,读取移动节点的回文,我主贴中说的n就是有回文的移动节点的个数。但这个n是个变值,可能是2个,还有可能是20个,总之回文的移动节点的数目是不确定的。
1040 + 0 * 160
1040 + 1 * 160
1040 + 2 * 160
1040 + 3 * 160
…………………
1040 + n * 160
这些表达式就是要操作固定节点向每一个移动节点发送另外一条指令!
不知道怎么处理这个变值n
点赞  2011-12-21 17:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复