导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→添加超时ADAT接收器?

* 102282: 添加超时ADAT接收器?

   liufengzhong 
liufengzhong发表的帖子 

 添加超时ADAT接收器?
我想添加一个简单的超时ADAT接收器,因为有时候,如果你把光缆才通过

p when pinsneq(violation) :>   int _;  

声明,它只会挂,从未退出线程。 我需要退出线程执行一些操作,所以我想读端口计数器每回合(或使用一个计时器),并使用select语句就像在超时的例子将是我最好的选择。

while(1) {
        violation = word;
        select {
            case t when timerafter(count + 100000) :>   void:
                printf("timer reached\n");
                return;
            case p when pinsneq(violation) :>   int _ @ count:
                break;
        }
   ...
   ...
   ...
}

现在,我知道adat_rx模块应该是可靠的,只是增加了select语句和采样端口柜台似乎把时间不一致,导致线程退出时结束循环,检查

if (word != 0 && word+1 != 0) 

任何想法如何可靠地退出线程如果等待
P
到不平等的
violation 
需要太长时间?

回答:

select
{
  case t when timerafter(count + 100000) :>   count:
    printf("timer reached\n");
    return;
  case p when pinsneq(violation) :>   void:
    t:>  count;
  break;
}

回复:

我也用一个计时器。 采样定时器这样仍然使线程退出时到达最后一个“如果”语句。 任何其他想法? 陷入在这一点上,在我的情况下甚至很少,不是可接受的。 我很惊讶这个问题还没有被发现之前(了)。

发表时间:2014年11月22日12:19:33

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:64位libwebkit Lubuntu 14.04#  #致
[下一篇帖子]:usb 2.0 -音频端口重新配置可能吗?为了切换ADC我需要声明一个自由港作为