打印
[Atmel]

Atmel START 跑一下定时器

[复制链接]
2165|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2015-10-14 22:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Atmel START是一个网页编程环境,超简单实用,关于用法可参考前几篇。

今天,跑个定时器.首先打开START.ATMEL.com

加入定时器模块:



定时器模块按默认值。
为了形象观察,用LED0作为指示灯,看看程序是否正确,注意SAMD21是PB30我选了PA30搞了半天哈:



然后下载用STUDIO7导入ZIP文件,然后在程序里加入自己的东东:



部分程序源码如下:

static void TIMER_0_task2_cb(const struct timer_task *const timer_task)
{
gpio_toggle_port_level(GPIO_PORTB,PORT_PB30 );
   
}

void TIMER_0_example(void)
{
        TIMER_0_task1.interval = 100;
        TIMER_0_task1.cb = TIMER_0_task1_cb;
        TIMER_0_task1.mode = TIMER_TASK_REPEAT;
        TIMER_0_task2.interval = 200;
        TIMER_0_task2.cb = TIMER_0_task2_cb;
        TIMER_0_task2.mode = TIMER_TASK_REPEAT;

        timer_add_task(&TIMER_0, &TIMER_0_task1);
        timer_add_task(&TIMER_0, &TIMER_0_task2);
        timer_start(&TIMER_0);
}

void system_init(void)
{
        init_mcu();

        // GPIO on PB30

        // Set pin direction to output
        gpio_set_pin_direction(LED0, GPIO_DIRECTION_OUT);

        gpio_set_pin_level(LED0,
                // <y> Initial level
                // <id> pad_initial_level
                // <false"> Low
                // <true"> High
                        false);

        gpio_set_pin_mux(LED0, GPIO_MUX_OFF);

        TIMER_0_init();
       
        TIMER_0_example();
}


下进开发板,则程序同预想的一样,定时一段时间就亮,然后就灭。



相关帖子

沙发
serenade753| | 2015-10-21 14:24 | 只看该作者
TC/TCC不太会用,没怎么看懂

使用特权

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

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6945

帖子

66

粉丝