共2条
1/1 1 跳转至页
ADC12ISR 为什么进不了ADC12ISR?
问
我是想在TAISR中打开ADC12进行转换,但为什么进不了ADC12ISR呢?请指教。
#include "MSP430x44x.h"
RESULT_ZC EQU 0200H
RESULT_JC EQU 0220H
ORG 01100H
RESET MOV #0A00h,SP
MAIN
CALL #INIT_SYS ;系统初始化
EINT
CLR R4 ;R4用来控制TA一个周期中断的次数32
MOV #625,&CCR0 ;采样间隔设置
BIS #MC0,&TACTL ;TA开始增记数,当记数到CCR0,即625的时候产生
;中断,进入TAISR?在TAISR中打开ADC12,进行
;采样转换。采样转换完后进入ADC12ISR存储数据
;同时TAISR进行记数,满32次则不允许TA的CCR0
;中断,程序进入计算模块。
L1
BIT #CCIE,&CCTL0 ;测试是否还在转换
JNZ L1
CALL #JS
MAINLOOP
NOP
JMP MAINLOOP
;--------------------------------------------------------------------------------
;系统初始化
;-------------------------------------------------------------------------------
INIT_SYS
StopWDT MOV #WDTPW+WDTHOLD,&WDTCTL ;关狗
SETUP_P BIS.B #02H,&P1SEL
BIS.B #02H,&P1DIR ;输出主系统时钟来测试
BIS.B #04H,&P1SEL ;捕获上升沿输入 P1.2 85脚
BIS.B #03H,&P6SEL ;直流 交流采样输入 P6.0直流95脚 P6.1交流96脚
SETUP_TA MOV #TASSEL1,&TACTL ;主系统时钟 允许中断
;MOV #CM0+SCS+CAP+CCIE,&CCTL1 ; 捕获 上升沿 同步允许中断
MOV #CCIE,&CCTL0 ; 比较 允许中断
SETUP_ADC MOV #ADC12ON,&ADC12CTL0 ;多次采样 开ADC
MOV #SHP+ADC12SSEL_2+CONSEQ_1,&ADC12CTL1 ;主系统时钟 序列通道单次转换模式
MOV.B #INCH_0,&ADC12MCTL0 ;通道0 交流输入
MOV.B #INCH_1+EOS,&ADC12MCTL1 ;通道1 直流输入 序列结束
RET
;---------------------------------------------------------------------
;-------------------------------------------------------------------
; TA中断子程序和ADC12中断子程序
;-------------------------------------------------------------------
TAISR
INC R4
CMP #32,R4
JEQ TA1
BIS #ENC,&ADC12CTL0
BIS #ADC12SC,&ADC12CTL0
NOP
JMP TA2
TA1 BIC #CCIE,&CCTL0
TA2 RETI
ADC12ISR
MOV &ADC12MEM0,RESULT_JC(R4)
MOV &ADC12MEM1,RESULT_ZC(R4)
RETI
;-------------------------------------------------------------------
;中断向量表
;-------------------------------------------------------------------
ORG 0FFECH
DW TAISR
ORG 0FFEEH
DW ADC12ISR
ORG 0FFFEh
DW RESET
END 答 1: 刘工 3gxj xiaoliang 三位高手在,我有救了。帮忙啊 答 2: :) 我看好像没有把ADC12IE中的第0位和第1位置位吧! 答 3: xiaoliang大虾终于出手了,先谢谢了,我试试。 答 4: 确实如此,再次感谢xiaoliang兄。 答 5: :D 别客气!相互帮助!
#include "MSP430x44x.h"
RESULT_ZC EQU 0200H
RESULT_JC EQU 0220H
ORG 01100H
RESET MOV #0A00h,SP
MAIN
CALL #INIT_SYS ;系统初始化
EINT
CLR R4 ;R4用来控制TA一个周期中断的次数32
MOV #625,&CCR0 ;采样间隔设置
BIS #MC0,&TACTL ;TA开始增记数,当记数到CCR0,即625的时候产生
;中断,进入TAISR?在TAISR中打开ADC12,进行
;采样转换。采样转换完后进入ADC12ISR存储数据
;同时TAISR进行记数,满32次则不允许TA的CCR0
;中断,程序进入计算模块。
L1
BIT #CCIE,&CCTL0 ;测试是否还在转换
JNZ L1
CALL #JS
MAINLOOP
NOP
JMP MAINLOOP
;--------------------------------------------------------------------------------
;系统初始化
;-------------------------------------------------------------------------------
INIT_SYS
StopWDT MOV #WDTPW+WDTHOLD,&WDTCTL ;关狗
SETUP_P BIS.B #02H,&P1SEL
BIS.B #02H,&P1DIR ;输出主系统时钟来测试
BIS.B #04H,&P1SEL ;捕获上升沿输入 P1.2 85脚
BIS.B #03H,&P6SEL ;直流 交流采样输入 P6.0直流95脚 P6.1交流96脚
SETUP_TA MOV #TASSEL1,&TACTL ;主系统时钟 允许中断
;MOV #CM0+SCS+CAP+CCIE,&CCTL1 ; 捕获 上升沿 同步允许中断
MOV #CCIE,&CCTL0 ; 比较 允许中断
SETUP_ADC MOV #ADC12ON,&ADC12CTL0 ;多次采样 开ADC
MOV #SHP+ADC12SSEL_2+CONSEQ_1,&ADC12CTL1 ;主系统时钟 序列通道单次转换模式
MOV.B #INCH_0,&ADC12MCTL0 ;通道0 交流输入
MOV.B #INCH_1+EOS,&ADC12MCTL1 ;通道1 直流输入 序列结束
RET
;---------------------------------------------------------------------
;-------------------------------------------------------------------
; TA中断子程序和ADC12中断子程序
;-------------------------------------------------------------------
TAISR
INC R4
CMP #32,R4
JEQ TA1
BIS #ENC,&ADC12CTL0
BIS #ADC12SC,&ADC12CTL0
NOP
JMP TA2
TA1 BIC #CCIE,&CCTL0
TA2 RETI
ADC12ISR
MOV &ADC12MEM0,RESULT_JC(R4)
MOV &ADC12MEM1,RESULT_ZC(R4)
RETI
;-------------------------------------------------------------------
;中断向量表
;-------------------------------------------------------------------
ORG 0FFECH
DW TAISR
ORG 0FFEEH
DW ADC12ISR
ORG 0FFFEh
DW RESET
END 答 1: 刘工 3gxj xiaoliang 三位高手在,我有救了。帮忙啊 答 2: :) 我看好像没有把ADC12IE中的第0位和第1位置位吧! 答 3: xiaoliang大虾终于出手了,先谢谢了,我试试。 答 4: 确实如此,再次感谢xiaoliang兄。 答 5: :D 别客气!相互帮助!
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |