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

📄 timer.c

📁 458通讯
💻 C
字号:

/*
void Timer0_init(void)        //0.03秒
{
	TCCR0=0b00000101;
	TCNT0=39;
	TIMSK=0x01;
}
*/
//&&&&&&&&&&&&&&&&&&&&&&&&
#define SET_T1_INTR TIMSK |= 0b00000100;
#define CLR_T1_INTR TIMSK &= 0b11111011;
void Timer1_init(void)
{
    TCCR1B = 0b00000001;     //无分频
//	TCNT1=0x735f;
    TCNT1 = 0xf70c;          //4M时0.5个字符-0.000573s产生一个中断
	TIMSK = 0b00000100;      //使能T1中断
}
//&&&&&&&&&&&&&&&&&&&&&&&&
ISR(SIG_OVERFLOW0)
{
	//PORTC=0xff;
	//write("t\0");
	TCNT0=39;
	if(bit_is_set(Startup_counter_flg,0))
	{
	    counter0 ++;
		if(counter0 >= 110)
		{
		    Startup_counter_flg &= 0b11111110;
		}		
	}
	if(bit_is_set(Startup_counter_flg,1) )
	{
	    counter1 ++;
		if(counter1 >= 110)
		{
		    Startup_counter_flg &= 0b11111101;
			counter1 = 0;
		}
	}
}
ISR(SIG_OVERFLOW1)
{   
    TCNT1 = 0XFF39;
	PORTC &= 0XFB;	
//    writeln("here");
}


modbus
? 1个起始位
? 8个数据位,最小的有效位先发送
? 1个奇偶校验位,无校验则无
? 1个停止位(有校验时),2个Bit(无校验时)


计数方向始终向上( 增加), 且没有计数器清除操作。当计数器值超过最大8 位值 (MAX
= 0xFF) 时,重新由0x00 开始计数。

TOV0 标志可用定时器溢出中
断清零,同时定时器的分辨率可通过软件提高。可随时写入新的计数器值。

CS02 CS01 CS00 说明
0 0 0 无时钟, T/C 不工作
0 0 1 clkI/O/1 ( 没有预分频)
0 1 0 clkI/O/8 ( 来自预分频器)
0 1 1 clkI/O/64 ( 来自预分频器)
1 0 0 clkI/O/256 ( 来自预分频器)
1 0 1 clkI/O/1024 ( 来自预分频器)
1 1 0 时钟由T0 引脚输入,下降沿触发
1 1 1 时钟由T0 引脚输入,上升沿触发

⌨️ 快捷键说明

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