[求助] 周航慈书第10章第2个例子的问题

chenbingjy   2020-3-17 16:18 楼主

我正在学习ucosii,看周航慈的《基于嵌入式实时操作系统的程序设计技术(第二版)》。

 

看到第10章,第2个例子:

使用定时器中断控制采样周期----中高速采样示例

部分代码如下:

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg 不成功。我调试了一下,如下图:

1.jpg

根据串口打印的结果,

printf("222\r\n");

for(i=0;i<CONSTCNT;i++)

{

printf("333\r\n");

temp=(INT32U)(INT32U *)OSMboxPend(Mbox,0,&err); //等待数据

printf("444\r\n");

Samp=(INT8U)(temp/10000);

}

貌似循环执行了一次,第二次执行时卡住了。

temp=(INT32U)(INT32U *)OSMboxPend(Mbox,0,&err);

可是我测试了,定时器中断是没问题的,也就是说数据发送过来了,不知道

为什么没有等到数据。

请高手指教,谢谢!



 

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

回复评论 (3)

改了一下中断程序:

2.jpg 效果如下:

1.jpg

好像是ds18b20采样时间太长,先清中断标志位,再采样,没采样完,又进中断。

可是这样还有一个问题,第一次按键可以,第二次就不行了。

 

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2020-3-17 19:26

为啥不直接贴代码而是发截图?

你倒是省事了,想帮你的人麻烦了,引用个代码片段还要想帮你的人自己敲一遍?

论坛支持帖代码。

默认摸鱼,再摸鱼。2022、9、28
点赞  2020-3-17 22:52
引用: freebsder 发表于 2020-3-17 22:52 为啥不直接贴代码而是发截图? 你倒是省事了,想帮你的人麻烦了,引用个代码片段还要想帮你的人自己敲一 ...

我错了,下次改正。不用ds18b20,改成tlc549好了

为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2020-3-18 08:04
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复