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

📄 ini.c~

📁 mega8产生的两路PWM信号
💻 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 + -