导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[转帖]如何从界面找到一个服务功能的声明?[liufengzhong]

 *第48067篇: [转帖]如何从界面找到一个服务功能的声明?

  
楼 主:liufengzhong 2014年8月31日15:31
 [转帖]如何从界面找到一个服务功能的声明?
尊敬的研究员,

我是来自意法半导体/ Microchip的单片机应用XMOS多核的初学者。

在这里,我得到一个startkit和尝试想出如何在XMOS做出一个程序 。似乎我有一些问题,找出使程序如何按钮/ LED /触摸滑块的作品,因为我无法找到如何是一个接口函数的工作,如以下之一:

typedef interface startkit_button_if {
   [[notification]] slave void changed(); // Can't find the declaration, how it works?
   [[clears_notification]] button_val_t get_value(); // Can't find the declaration, how it works?
 } startkit_button_if;
 

我想我可以在这里使用来自论坛的一些帮助。 

有人帮我度过难关,我会很感激的。

谢谢


回答:

接口描述了两个任务如何沟通。要使用一个接口,你必须开始并行运行两个任务。一个任务(在客户端结束)会在界面的请求。其他任务(服务器端)将响应来自客户机的请求。要了解,当你执行你需要看,是以接口的服务器端作为参数的函数的实现一个接口上的方法调用,运行的代码。

在startKIT GPIO驱动的情况下,相关的代码是在startkit_gpio.xc:

该startkit_gpio_driver()函数接口的服务器端作为参数,并把它传递给startkit_gpio_driver_aux()函数。在这个函数中有以下情况:

    // Case handling a request for the button value
    case !isnull(i_button) =>   i_button.get_value() ->   button_val_t res:
      res = button_val;
      break;


它是这样的代码,处理的get_value()方法。在这种情况下,代码很简单 - 它只是返回的按钮(button_val)最后一次读取的值。该button_val变量在选择周期性采样端口的值的另一种情况下更新。


回答2:

HI

标记为一个函数[[通知]将(好!)通知到已经发生的事情的客户端程序。这是一个通知事件。功能标记为[[clears_notification]将清除通过调用它们发出的通知。
在这里您具体的例子,你可以编写使用该接口为应用程序:

void app(client interface startkit_button_if i_skbutton) {
  while(1) {
    select {
      case i_skbutton.changed(): { // something changed in the startkit button interface
        button_val_t btn_val;
        /*
            Get the button value using button interface. This will also clear the notification.
            If something else changes in the button interface then the 'changed()' event will be triggerred again and you will enter this case.
        */
        btn_val = i_skbutton.get_value(); // 
      }
    }
  }
}

如果您需要使用接口的详细信息; 请打开xTIMEcomposer工作室。打开“方法文档”窗口中:窗口 - >  显示视图 - >   HOWTO。这将在xTIMEcomposer Studio的左下角打开方法文档浏览器。搜索此方法文档浏览器“接口”,看看这将被列为本次搜索的结果不同的例子。

我希望这会有所帮助。


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:[转帖]“4个字符”来诠释为“4个字符”:序列化/反序列化不按位运算?

[下一篇主题]:[转帖]禁止进程??