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

📄 timer.c

📁 IARAVR多项功能测试+protues调试例程
💻 C
字号:
#define TIMER_C
#include "includes.h"

unsigned char TC0_count=1,TC2_count=1;
unsigned int  AD_count=1;

void init_timer0(void)
{
    SET_TIMER0_1; //T/C0工作于定时方式,系统时钟
    SET_TCNT0;    //计数初值
    SET_TIMER0_TOIE;  //使能T0溢出中断
}

#pragma vector = TIMER0_OVF_vect       //AD采样控制中断
    __interrupt void TOver0_isr( void )
{
    SET_TCNT0;
    
    switch(AD_count)
    {
        case(10*AD_point)://采满15个周期进入B采样
           ADchanel(VB);
           AD_Statue = CONVERTING;   
        break;
        case(30*AD_point)://采满30个周期进入C采样
           ADchanel(VC);
           AD_Statue = CONVERTING;
        break;
        case(45*AD_point)://采满45个周期AD采样结束
           AD_Statue = FINISHED;
           set_adrefrash;
        break;
        case(50*AD_point)://采满50个周期进入新一秒采样
           ADchanel(VA);
           AD_Statue = CONVERTING;
           AD_count = 1;
           UA_sum = 0;
        break;
    }
    
    if(TC0_count>=TO0_TIMES)//一轮采样
    {
        AD_VX;
        TC0_count=1;
        AD_count++;
    }
    else
    {
        TC0_count++;
    }
}  

void init_timer2(void)
{
    SET_TIMER2_32;     //T/C2工作于定时方式,系统时钟
    SET_TCNT2;        //计数初值
    SET_TIMER2_TOIE;  //使能T2溢出中断
}

#pragma vector = TIMER2_OVF_vect//基本时钟
    __interrupt void TOver2_isr( void )
{
    SET_TCNT2;
    
}
/*
    if(PIND&0xf0)
        PORTD=PIND&0x0f;
    else
        PORTD=PIND|0xf0;
*/

⌨️ 快捷键说明

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