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

📄 interrupt.c

📁 国内某测温系统信号处理处理板的代码
💻 C
字号:
#include "config.h"

extern unsigned char dp2rass[5];
extern unsigned char rass2dp;
extern unsigned int test_freq;
extern unsigned char rxed_flag;
extern unsigned int seed;
extern unsigned char timer1;
extern unsigned int TCNT1_H;
extern unsigned int TCNT1_L;
extern unsigned int D15_0;


//#pragma interrupt_handler timer1_ovf_isr:7
void timer1_ovf_isr(void)
{
	//在这里改变频率
 timer1=1;
 TCNT1H = TCNT1_H; //reload counter high value
 TCNT1L = TCNT1_L; //reload counter low value
 ml2035(D15_0,1);
 SEI();
}



//#pragma interrupt_handler uart0_rx_isr:10
void uart0_rx_isr(void)
{
 //uart has received a character in UDR
 static int rxnum=0;
 unsigned char mid;
 mid=UDR;
 
 
 if(!(mid&0x01))//判断是命令还是数据请求,是请求,则
	 {
	 	rxed_flag=1;
	 	dp2rass[0]=mid;
		return;
	 }
			           
 dp2rass[rxnum++]=mid;
 PORTC ^=1<<pc0;
 if(rxnum>4)
 	{
 		rxnum=0;
 		PORTC &=~(1<<pc0);
 		rxed_flag=1;
 	}
 SEI();
}



//#pragma interrupt_handler uart0_tx_isr:12
void uart0_tx_isr(void)
{
 //character has been transmitted
 //use pc0 to show transmitter over
 PORTC |=1<<pc1;
 delay_us(100);
 PORTC &=~(1<<pc1);
 SEI();
}


//#pragma interrupt_handler ana_comp_isr:13
void ana_comp_isr(void)
{
 //analog comparator compare event
 rass2dp=0;
 PORTC ^=1<<pc2;
 if(ana_freq)
 	{
	  //unsigned int test_freq;
    unsigned int ana_com[2];
    unsigned int dert_time;
    static unsigned char ana_num=0;
    unsigned int dert_freq;
    
 		ana_com[ana_num++]=(TCNT1H<<8)+TCNT1L;
 		if(ana_num>1)
 			{
 				ana_num=0;
 				if(ana_com[0]<ana_com[1])
 					dert_time=ana_com[1]-ana_com[0];
 				else
 					dert_time=ana_com[1]+0xffff-ana_com[0];
 				test_freq =7200/(dert_time+1);
 				dert_freq=(test_freq>seed)?(test_freq-seed):(seed-test_freq);
 				if(dert_freq<50)
 					rass2dp=0;
 				else
 					rass2dp=1;
 			 } 
 	}		
}

⌨️ 快捷键说明

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