📄 ini.c~
字号:
#include<main.h>
//准备
void ini_xt(void)
{switch(fs)
{case 1://红灯亮-双脉宽输出
//I/O
DDRD=0xff; //PD全部设为输出
//ADC
if(zz==1){ADMUX=0x00;} //外部参考电压,右对齐,通道0
else if(zz==2){ADMUX=0x01;}//外部参考电压,右对齐,通道1 //ADC
ADCSRA=0xc8+6; //ADC使能中断,开始转换,允许中断,2分频因子
//T1
OCR1A=0x47; //T1比较匹配A
TIMSK=0x1c; //使能比较A/B;使能溢出
TCCR1A=0x03; //10位快速PWM模式
TCCR1B=0x0b; //10位快速PWM模式;8分频
//外部中断
GICR=0x00; //INT0-INT1禁止中断
//其他
break;
case 2://绿灯亮-双脉宽输入
//I/O
DDRD.2=DDRD.3=0; //中断引脚配置为输入
//ADC
//T1
TIMSK=0x00; //屏蔽T1所有
TCCR1B=0x01; //无分频(系统时钟)
//外部中断
MCUCR|=0x0f; //INT0-INT1上升沿触发
GICR=0xc0; //INT0-INT1使能中断
//其他
break;
case 3://红绿灯亮-数字舵机
//I/O
DDRD=0xff; //PD全部设为输出
//ADC
//T1
//外部中断
//其他
break;
case 4://红绿灯灭-转速测量
//I/O
DDRD=DDRD&0xf3; //中断引脚配置为输入
//ADC
//T1
TIMSK=0x04; //使能T1中断
TCCR1B=0x03; //系统时钟64分频
//外部中断
MCUCR=MCUCR|0x0f; //INT0-INT1上升沿触发
GICR=0xc0; //INT0-INT1使能中断
//其他
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -