[Atmel] SAML21走起21:事件

[复制链接]
765|0
 楼主| ddllxxrr 发表于 2015-9-2 21:57 | 显示全部楼层 |阅读模式
本帖最后由 ddllxxrr 于 2015-9-2 22:03 编辑

在这个例子中,是软件触发事件,不用任何的硬件。

程序也很简单,首先在ASF Wizard 中加入EVENT事件模块,然后在ASF EXPLORER中打开快速指导。

按快速指导建立程序。然后编译。我在编译时遇到了一个提示,说是.h文件找不到,后来,我到模块那里后边的括号,换成hooK,编译就通过了,原来不同的模块方式,调用不同的文件。

以下是程序:
  1. #include <asf.h>

  2. #define CONF_EVENT_GENERATOR    EVSYS_ID_GEN_NONE
  3. #define CONF_EVENT_USER         EVSYS_ID_USER_PORT_EV_0

  4. static void configure_event_channel(struct events_resource *resource)
  5. {
  6.         struct events_config config;
  7.         events_get_config_defaults(&config);
  8.         config.generator      = CONF_EVENT_GENERATOR;
  9.         config.edge_detect    = EVENTS_EDGE_DETECT_RISING;
  10.         config.path           = EVENTS_PATH_SYNCHRONOUS;
  11.         config.clock_source   = GCLK_GENERATOR_0;
  12.         events_allocate(resource, &config);
  13. }
  14. static void configure_event_user(struct events_resource *resource)
  15. {
  16.         events_attach_user(resource, CONF_EVENT_USER);
  17. }


  18. int main (void)
  19. {
  20.         struct events_resource example_event;
  21.         system_init();
  22.          configure_event_channel(&example_event);
  23.          configure_event_user(&example_event);
  24.          
  25.          while (events_is_busy(&example_event)) {
  26.                  /* Wait for channel */
  27.          };
  28.          events_trigger(&example_event);
  29.          while (true) {
  30.                  /* Nothing to do */
  31.          }
  32. }
以下的截图是编译通过的截图:

本帖子中包含更多资源

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

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2404

主题

7002

帖子

68

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