这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » [求助]大家帮忙看看这个A/D的程序

共1条 1/1 1 跳转至

[求助]大家帮忙看看这个A/D的程序

菜鸟
2006-08-04 04:56:39     打赏
我这个程序总是进不了中断,这是为什么啊 #include "register.h" int ADRESULT[16]; // 定义一个数组用于保存AD转换的结果 volatile unsigned int *j; // 定义一个指针变量j int i=0x00,cesi,k=0; void inline disable() { asm(" setc INTM"); } void inline enable() { asm(" clrc INTM"); } initial() { asm(" setc SXM"); // 符号位扩展有效 asm(" clrc OVM"); // 累加器中结果正常溢出 asm(" clrc CNF"); // B0被配置为数据存储空间 *SCSR1=0x81FE; // CLKIN=6M,CLKOUT=4*CLKIN=24M *WDCR=0x0E8; // 不使能看门狗,因为SCSR2中的WDOVERRIDE // 即WD保护位复位后的缺省值为1,故可以用 // 软件禁止看门狗 *IMR=0x0001; // 允许INT1中断 *IFR=0x0FFFF; WSGR=0X00; // 清除全部中断标志,"写1清0" } // AD初始化子程序 void ADINIT() { *T4CNT=0x0000; // T4计数器清0 *T4CON=0x1704; // T4为连续增计数模式,128分频,且选用内部时钟源 *T4PER=0x75; // 设置T4的周期寄存器 *GPTCONB=0x400; // T4周期中断标志触发AD转换 *EVBIFRB=0x0FFFF; // 清除EVB中断标志,写"1"清0 *EVBIMRB=0x0000; *ADCTRL1=0x10; // 采样时间窗口预定标位ACQ PS3-ACQ PS0为0, // 转换时间预定标位CPS为0,AD为启动/停止模式,排 // 序器为级连工作方式,且禁止特殊的两种工作模式 *ADCTRL2=0x8404; // 可以用EVB的一个事件信号触发AD转换, // 且用中断模式1 *MAXCONV=0x0F; // 16通道 *CHSELSEQ1=0x3210; *CHSELSEQ2=0x7654; *CHSELSEQ3=0x0BA98; *CHSELSEQ4=0x0FEDC; // 转换通道是0和1 } // 若是其它中断则直接返回子程序 void interrupt nothing() { enable(); return; } // AD中断服务子程序 void interrupt adint() { asm(" clrc SXM"); // 抑制符号位扩展 j=RESULT0; // 取得RESULT0的地址 for(i=0;i<=15;i++,j++) { ADRESULT[i]=*j>>6; // 把AD转换的结果左移6位后存入规定的数组 cesi=ADRESULT[i]; // 检验每个A/D转换的结果 } *ADCTRL2=*ADCTRL2|0x4200; // 复位SEQ1,且清除INT FLAG SEQ1标志写"1"清0 ++k; enable(); // 开总中断,因为一进入中断总中断就自动关闭了 } main() { disable(); // 禁止总中断 initial(); // 系统初始化 ADINIT(); // AD初始化子程序 enable(); // 开总中断 *T4CON=*T4CON|0x40; // 启动AD转换 /*while(1) { if(i==0x10) break; // 如果已发生中断,则停止等待(发生中断后,i=0x10) } // 等待中断发生 *T4CON=*T4CON&0x0FFBF; */ // 停止定时器4,即间接停止A/D转换 while(1) { ; } // 死循环,在实际的工程应用中在此可以利用A/D转换的 // 结果用于一些运算 } 中断向量表 .title "vectors.asm" .ref _nothing .ref _c_int0 .ref _adint .sect ".vectors" REVECT B _c_int0 INT1 B _adint INT2 B _nothing INT3 B _nothing INT4 B _nothing INT5 B _nothing INT6 B _nothing



关键词: 求助     大家     帮忙     看看     这个     程序     中断     转换    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]