打印
[Atmel]

SAML21走起21:事件

[复制链接]
605|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ddllxxrr 于 2015-9-2 22:03 编辑

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

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

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

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

#define CONF_EVENT_GENERATOR    EVSYS_ID_GEN_NONE
#define CONF_EVENT_USER         EVSYS_ID_USER_PORT_EV_0

static void configure_event_channel(struct events_resource *resource)
{
        struct events_config config;
        events_get_config_defaults(&config);
        config.generator      = CONF_EVENT_GENERATOR;
        config.edge_detect    = EVENTS_EDGE_DETECT_RISING;
        config.path           = EVENTS_PATH_SYNCHRONOUS;
        config.clock_source   = GCLK_GENERATOR_0;
        events_allocate(resource, &config);
}
static void configure_event_user(struct events_resource *resource)
{
        events_attach_user(resource, CONF_EVENT_USER);
}


int main (void)
{
        struct events_resource example_event;
        system_init();
         configure_event_channel(&example_event);
         configure_event_user(&example_event);
         
         while (events_is_busy(&example_event)) {
                 /* Wait for channel */
         };
         events_trigger(&example_event);
         while (true) {
                 /* Nothing to do */
         }
}
以下的截图是编译通过的截图:

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2398

主题

6950

帖子

67

粉丝