打印
[Atmel]

跑一下XMEGA-B1程序(4)定时器TC0

[复制链接]
617|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2015-12-21 19:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
今天用定时器点一下灯。首先新建ASF工程加入TC模块,在没加入时或加入后用ASF EXPLORER都可以调出TC的帮助文档。

根据帮助文档,可以继续添加需要的模块,并形成程序。

程序如下:
#include <asf.h>
static void my_callback(void)
{
        // User code to execute when the overflow occurs here
        ioport_set_pin_high(LED0_GPIO);
        ioport_set_pin_high(LED1_GPIO);
        ioport_set_pin_high(LED2_GPIO);
        ioport_set_pin_high(LED3_GPIO);
        //delay_s(1);
}
int main (void)
{
        /* Insert system clock initialization code here (sysclk_init()). */

        //sysclk_init();
       
        pmic_init();
        sysclk_init();
        board_init();
        delay_init();
        tc_enable(&TCC0);
        tc_set_overflow_interrupt_callback(&TCC0, my_callback);
        tc_set_wgm(&TCC0, TC_WG_NORMAL);
        tc_write_period(&TCC0, 65535);
        tc_set_overflow_interrupt_level(&TCC0, TC_INT_LVL_LO);
        cpu_irq_enable();
        tc_write_clock_source(&TCC0, TC_CLKSEL_DIV1_gc);
        while(1)
        {
     //ioport_set_pin_high(LED0);
     //ioport_set_pin_high(LED1);
         //ioport_set_pin_high(LED2);
         //ioport_set_pin_high(LED3);
         //ioport_set_pin_high(LED0_GPIO);
         //ioport_set_pin_high(LED1_GPIO);
         //ioport_set_pin_high(LED2_GPIO);
         //ioport_set_pin_high(LED3_GPIO);
         //delay_s(1);
         ioport_set_pin_low(LED0);
         ioport_set_pin_low(LED1);
         ioport_set_pin_low(LED2);
         ioport_set_pin_low(LED3);
         //delay_s(1);
         
        }
        // while(1);       
       

        /* Insert application code here, after the board has been initialized. */
}

运行结果,灯可以被点亮。



相关帖子

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

本版积分规则

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

2398

主题

6945

帖子

66

粉丝