微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 想问一下ad中断的结果问题。

想问一下ad中断的结果问题。

时间:10-02 整理:3721RD 点击:
result寄存器到底是只存转换好的结果,还是连中间结果也用这个寄存器的呢?我在调试ad中断的时候用的是“仿真挂起立即停止转化”,然后我设置断点,到断点出看result寄存器,发现不是我要的值,在设置方式字为“仿真挂起后转换完毕后在停止ad”,这样的话到断点出在单步一条指令就会出现我要的期望值,难道ad的中间结果也放在result寄存器??

result寄存器不存中间结果.用“仿真挂起立即停止转化”,结果不
对,有可能是还没有转化完就停止了.

在设置方式字为“仿真挂起后转换完毕后在停止ad”,这样的话到断点处只有再单步一条指令才会出现我要的期望值,这个是为什么而不是立即就在result里面出现我要的东西?更奇怪的是这样还是要在自动排序模式下才可以,在启动/停止的模式下根本就不会出现我要的正确值,就算断点处单步也不行啊。。。。。。

贴一下我的程序:
ADINIT:
               
                LDP                #DP_PF2
                SPLK         #2050H,ADCTRL1            ;AD在仿真悬挂时候转化完之后停止,级联,自动排序模式
       
                SPLK         #0001H,MAXCONV            ;2个 通道
                SPLK         #0010H,CHSELSEQ1        ;选择1通道
                SPLK        #0000H,CHSELSEQ2
                SPLK        #0000H,CHSELSEQ3
                SPLK         #0000H,CHSELSEQ4
               
                SPLK         #0400H,ADCTRL2           ;中断方式1,EVAEVB都不能引起AD中断
                RET       

;----------------------------启动模数转换程序------------------------------------------------------
ADSTART:
                CLRC        INTM
                LDP          #DP_PF2
                LACL        ADCTRL2
                OR        #2000H                                ;启动AD
                SACL        ADCTRL2
                RET
                                       
GISR1:
                        LDP  #0E0H
                          LACC PIVR,1             ;读取外设中断向量寄存器(PIVR),并左移一位-->ACC
                          ADD  #PVECTORS    ;加上外设中断入口地址
                        BACC                      ;跳到相应的中断服务子程序

ADCINT_ISR:
                                       
                       
                        LDP          #DP_PF2                                ;清AD中断标志INT FLAG SEQ1
                        LACL        ADCTRL2                               
                        OR                #2200H                                ;重新启动AD,并指向conv00
                        SACL        ADCTRL2
                        CLRC         INTM
                               
                        RET
                                            
                           END

我的初始化有问题么??
我result是直接看memory的,0X70a8和0x70a9,两个通的的result都有不对。。。硬件上面应该没有问题。

LACL ADCTRL2
OR #2200H ;重新启动AD,并指向conv00
SACL ADCTRL2

你为什么要或2200呢?位9是中断标志位,置1表示发生过中断,
你怎么手动置一呢?

你怎么手动置一呢?

写1是清中断。。。写0是无作用。。。dsp好像int flag都是写1清的。

那我就不清楚了,我没用过AD中断.

请问用AD中断的时候是不是先要校准模式来校准??

除非精度要求高,否则不用校准.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top