⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer0.c

📁 ARP协议,含ARP
💻 C
字号:
#define START_TICK_TIMER    {TIMSK = 0x02;}
#define STOP_TICK_TIMER     {TIMSK = 0x00;}



/* 功能:10ms定时器(T0)初始化
 * 输入:无
 * 输出:无
 * 返回值:无
 * 说明:无
 */
void init_timer0 (void) {
    //在1Mhz下,256分频,计次39

    TCCR0 = 0x0e;
 
    OCR0 = 39;

    //只保留比较匹配中断
    TIMSK = 0x02;
}
void init_tick_timer (void) {
    //在1Mhz下,256分频,计次39

    TCCR0 = 0x0e;
 
    OCR0 = 39;
}

//一个更精确的停表
void init_stop_watch (void) {
    TCCR1A = 0x00;
    TCCR1B = 0x05;
    TCCR1C = 0x00;
}

void start_stop_watch (void) {
    //16位写,低字节写生效
    TCNT1H = 0x00;
    TCNT1L = 0x00;

    TCCR1B = 0x05; //启动计数CLK
}

us stop_stop_watch (void) {
    union {
        us s;
        uc c[2];
    } t;

    TCCR1B = 0x00; //停止计数CLK

    //16位读,低字节读生效
    cli ();
    t.c[0] = TCNT1L;
    t.c[1] = TCNT1H;
    sei ();

    return t.s;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -