- UID
- 152175
- 性别
- 男
|
HCS12AD转换中转换完成标志清除问题:
在中断服务程序中如何才能把SCF标志清除,我按照文档中的方法做了,但是就是清除不掉,请大家指教.我用的是DG128,源码如下所示:
Entry:
JSR ADINIT
CLI ;enable interrupts
LOOP: MOVB #%10000111,ATD0CTL5;右对齐方式,通道选择为通道7
BRA LOOP ;endless loop
;******************************************************************************
;**************************************************************
;* ADINIT *
;**************************************************************
ADINIT: MOVB #%10100010,ATD0CTL2 ;初始化AD,bit7=1:启动AD转换电源,bit1=1,允许中断方式AD转换
MOVB #%00001011,ATD0CTL3 ;bit6bit5bit4bit3=0001:转换序列长度为1,bit2=0:不使用FIFObit1bit0=11:冻结
MOVB #%10000101,ATD0CTL4 ;bit7=1:AD精度为8位,bit6bit5=00:2个采样周期,bit4-bit0=00101:对总线周期24M进行12分频
MOVB #$00,ATD0DIEN
JSR Dly1ms
RTS
;**************************************************************
;* ATD_ISR *
;**************************************************************
ATD_ISR LDAB ATD0STAT1 ;读状态寄存器
LDAB ATD0DR0L ;读AD转换的值
JSR HtoA ;将结果转换为十六进制通过串口输出
LDAB #$80
STAB ATD0STAT0 ;向SCF写1以清除该转换完成标志
;MOVB #%10000111,ATD0CTL5 ;开始下一次转换
RTI
;***************************************************************************** |
|