DSP adc采集程序
更新时间:2023-12-16 13:50:01 阅读量: 教育文库 文档下载
- dsp是什么意思推荐度:
- 相关推荐
#include \ #include \ #include \
#include \#include \
int ConversionCount,f; int Voltage[1024],Vmax,Vmin,Vavr; //电压转换结果存储数组及一个周期内的采样值数组 float RMS=0,U0[1024],SV[]; //电压有效值 interrupt void adc_isr(void);
main() { InitSysCtrl(); //初始化时钟,CPU为15M,高速时钟Hspclk为1.5M DINT; //关闭中断
InitPieCtrl(); //初始化Pie寄存器
IER=0x0000; //禁止所有可屏蔽中断 IFR=0x0000;
InitPieVectTable(); //初始化Pie中断向量表
EALLOW; //打开寄存器写保护
PieVectTable.ADCINT=&adc_isr; //将Adc中断子程序的服务地址写入中断向量表 EDIS; //禁止寄存器的访问
InitAdc(); //初始化Adc,完成Adc的上电 InitLcd(); //液晶初始化 /*在Pie中使能Adc的中断ADCINT*/
PieCtrlRegs.PIEIER1.bit.INTx6=1; //查表知ADCINT对应的是INT1,INTx.6 IER=M_INT1; //使能CPU中断 EINT; //使能全局中断 /*配置Adc模块*/
AdcRegs.ADCMAXCONV.all=0x0000; //设置SEQ1的最大转换通道数为1 AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0; //选择0通道
AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1; //选择EVA作为SEQ1的触发启动信号 AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1; //使能SEQ1的中断操作(中断方式0)
/*配置EVA*/
EvaRegs.T1CNT=0x0000; //计数初值
EvaRegs.T1PR=0x007D; //设置周期寄存器值为125,因为下面设的是增减计数模式,EVA的下溢启动Adc,所以采样周期是250个计数周期
EvaRegs.GPTCONA.bit.T1TOADC=0x1; //设置EVA的下溢启动Adc EvaRegs.T1CON.all=0x0842; //设置T1为连续增减计数模式,不分频,即时钟为高速时钟Hspclk:1.5M ,
}
ConversionCount=0;
while(1) //等待中断 { ; }
interrupt void adc_isr(void) {
if(Vmin>Voltage[i]) Vmin=Voltage[i]; //求出最小值
int i=0,j=0,flag=0; //flag作为遇到零点的标志 Voltage[ConversionCount]=AdcRegs.ADCRESULT0>>4;
U0[ConversionCount]=3.0*Voltage[ConversionCount]/4095;
if(ConversionCount==1023) //如果采样点数达到了1024 {
PieCtrlRegs.PIEIER1.bit.INTx6=0; //禁止中断请求 ConversionCount=0;
/*求出1024个点中的最大最小值和中间值*/
Vmax=Voltage[0]; Vmin=Voltage[0];
for(i=0;i<1024;i++) { if(Vmax } Vavr=(Vmax-Vmin)/2; //求出中间值 { if(flag==1) SV[j]=U0[i]; //U0[i]就是对应的Voltage[i]的模拟值 RMS+=SV[j]*SV[j]; for(i=1;i<1024;i++) { if((Voltage[i-1]<=Vavr)&&(Voltage[i]>=Vavr)) { } flag++; } } { } j++; if(flag==2) i=1024; flag=0; RMS=sqrt(RMS/j); rg=(int)RMS; r1=((int)(RMS*10)); r2=((int)(RMS*100)); f=(1500000/250)/j; fb=f/100; fs=(f-fb*100)/10; fg=f-fb*100-fs*10; lcd_write_dy(); lcd_write_pl(); PieCtrlRegs.PIEIER1.bit.INTx6=1; //使能中断请求 } } else ConversionCount++; /*复位SEQ1,等待触发信号重启下次转换*/ AdcRegs.ADCTRL2.bit.RST_SEQ1=1; //复位SEQ1 AdcRegs.ADCST.bit.INT_SEQ1_CLR=1; //清除SEQ1的中断标志位 PieCtrlRegs.PIEACK.all=PIEACK_GROUP1; //使能Adc模块的下次中断请求 return;
正在阅读:
DSP adc采集程序12-16
可编程控制器及应用上机考试试题11-23
2012年湖州市中考数学试题及答案05-12
成长的烦恼作文600字10篇全面版03-11
河北省兽药GSP检查验收办法及申请表等(2013修订版) - 图文03-11
咬出来的画作文450字07-12
中国网民达6.18亿 八成用手机上网06-25
斯托默粘度计项目可行性研究报告(发改立项备案+2013年最新案例05-31
机械设备管理论文01-17
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 采集
- 程序
- DSP
- adc
- 玉米买卖谈判计划书
- 2014--2015六年级上语文试卷
- 2016年潍坊市初中学业水平考试地理试题附答案(word)
- 大学生完成科技创新项目的自我评价,体会与建议
- 《旅游饭店星级的划分与评定》(gbt14308-)实施办法
- 蔡坑隧道临时设施规划
- 江苏教师资格认定考试教育学模拟试卷一及答案
- 2015年国家司法考试试卷一参考答案
- 河南理工大学混凝土结构试题
- 资产采购岗廉政风险防控流程图
- 2019届二轮复习:专题(12)西方人文精神的发展与科技文化的繁荣(作业)
- 最新北师大版三年级数学上册教学工作计划(直接打印版)
- 龙门架拆除安全技术交底031 - 图文
- 人教版八年级历史学案第19课问题导读单 精品
- 四(1)班数学课程使用说明书
- 成本管理文献综述
- 交通运输行业人力资源名单
- 中间结构验收汇报材料 - 图文
- 2015-2016学年西师大版五年级(下)期中语文试卷
- 《普通高中课程标准》语文背诵篇目+高考语文理解性默写全练(干货满满)