📄 interrupt_ad.c
字号:
#include "AD.h"
#include "2407.h"
#include "System.h"
void interrupt c_AD(void) {
int AD_temp=0;
// asm(" SETC INTM");
if(*PIVR!=0x0001)
return;
// *T3CON = 0x9002;
//*****************
asm(" CLRC INTM");
++FLAG_AD_FINISH;
asm(" clrc XF");
switch(TONGDAO_A) {
case 1:
AD_temp =AD_SPACE; //Q15
AD_temp =(AD_temp<<2)>>2;
AD_temp =AD_temp*ADK;
AD_DATA_Y[FLAG_AD_FINISH-1]=AD_temp;
break;
case 2:
AD_DATA_Y[2*FLAG_AD_FINISH-2] = AD_SPACE;
AD_DATA_Y[2*FLAG_AD_FINISH-1] = AD_SPACE;
break;
case 3:
AD_DATA_Y[3*FLAG_AD_FINISH-3] = AD_SPACE;
AD_DATA_Y[3*FLAG_AD_FINISH-2] = AD_SPACE;
AD_DATA_Y[3*FLAG_AD_FINISH-1] = AD_SPACE;
break;
case 4:
AD_DATA_Y[4*FLAG_AD_FINISH-4] = AD_SPACE;
AD_DATA_Y[4*FLAG_AD_FINISH-3] = AD_SPACE;
AD_DATA_Y[4*FLAG_AD_FINISH-2] = AD_SPACE;
AD_DATA_Y[4*FLAG_AD_FINISH-1] = AD_SPACE;
break;
default:
break;
}
if(FLAG_AD_FINISH==128)
{
FLAG_AD_FINISH=0; //采样点数加1
*XINT1CR &= 0xFFFE ; //关中断INT2
IsFlashData=1; //开始刷新数据
DataProc(); //数据处理
// IsControl++;
/* if (IsControl==200)
{
// IsFlashData=1; //开始刷新数据
// *XINT1CR &= 0xFFFE; //关外部中断
// *IMR &=0xff1f; //关中断INT2
DataProc(); //数据处理
IsControl=0;
} */
}
AD_INITIAL(TONGDAO_A); //初始化AD
asm(" NOP ");
asm(" NOP ");
*XINT1CR |=0x8000;
// asm(" CLRC INTM");
asm(" NOP ");
asm(" NOP ");
return ;
// return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -