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

📄 timer2._c

📁 使用Atmel88芯片实现RS485通讯,Modbus通讯协议.在IVR_AVR环境中编译,文件完整.
💻 _C
字号:
//timer2
#include <iom48v.h>
#include <macros.h>
#include "main.h"
#include "modbus.h"
#include "timer2.h"

volatile TIMEBASESTRCUT timeBase;
volatile LEDCONTROL ledControl;
//uchar var_a,var_b; 

//TIMER2 initialize - prescale:64
// WGM: Normal
// desired value: 1mSec
// actual value:  1.000mSec (0.0%)
void timer2_init(void)
{
 TCCR2B = 0x00; //stop
 ASSR  = 0x00; //set async mode
 TCNT2 = 0x83; //setup
 OCR2A = 0x7D;
 OCR2B = 0x00;
 TCCR2A = 0x00; 
 TCCR2B = 0x04; //start
}

// timebase module.
void time_mission (void)       
{
	static uchar Cnt100ms;
	static uchar varcou;
	static uint cnt500ms;
 	timeBase.bits.b1ms = 0;
	timeBase.bits.b10ms = 0;
    
	if(timeBase.bits.bt1ms) 
	{ 
	//--------------------
	//    PORTC ^= 0x02;
	//      subled();	
	//-----------------------
		timeBase.bits.bt1ms = 0; 
		timeBase.bits.b1ms = 1; 
		if(receTimeOut>0) 
		{
			receTimeOut--;
			if(receTimeOut==0 && receCount>0)
			{
				receCount = 0;
				checkoutError = 0;
			} 
		} //if(receTimeOut>0) 
		
		varcou++;
  		if(varcou>=5)
    	{                                              
            
			ledControl.bits.refurbish = 1;  
    		varcou = 0;                     
    	}                                   
	
	    cnt500ms++;
	    if(cnt500ms>=200)
	    {	 
		    cnt500ms = 0;
		    ledControl.bits.once128ms = 1;
	    }
	} //(timeBase.bits.bt1ms)	
}	
 	
	  
   	  

⌨️ 快捷键说明

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