⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcbsp0risr.asm

📁 DSP实验程序:数据采集实验,练习使用DSP进行数据采集
💻 ASM
字号:
***此程序是串口0的接收中断服务程序,完成了将ad73311采样数据存入指定地址的任务
***接收中断的速率按照AD73311的帧率进行
*程序在10.20日修改过,最后定型的程序应该是,在中断中只将采样数据共16k存入地址
*6000h-a000h的内存中,应该去掉自动回声的程序,同时在中断程序中,可以设置如果
*采样16k数据以满,那么立即屏蔽中断,使中断不再响应。也可以在主程序中依据中断
*进入的次数,关闭中断不再响应

   .include MMRegs.h
   .global _mcbsp0risr
   .global _admemory
   .global	_MCBSP0RNUM
   .include "regsave.asm"
   .title "mcbsp0risr.asm"
   
   .sect "mcbsp0"
_mcbsp0risr
    ssbx intm			;关中断
    reg_save
    rsbx sxm
    stm #_MCBSP0RNUM, ar6
    nop
    nop
    ld *ar6, a
    nop
    nop
    nop
    add #1, a
    nop
    nop
    nop
    stl a,*ar6
    nop
    nop
    nop
    stm #_admemory, ar6		;
    nop
    nop
    ld *ar6, a				;将数据要存放的地址放入a中
    nop
    nop
    nop
    nop
    sub #0a000h, a			;可以存入16k数据
    nop
    nop
    bc redo, NC			;如果存储地址超过了a000h,那么重置6000h,或者屏蔽掉中断
    stm #_admemory, ar6
    nop
    nop
    st #6000h, *ar6
    nop
    nop
    nop
    stm #_MCBSP0RNUM, ar6
    nop
    nop
    st #0000h, *ar6
    nop
    nop
    nop
redo
	ld *ar6, a
	nop
	nop
	nop
	nop
    stlm a, ar5				;将数据要存放的地址放入ar5寄存器中
    nop
    nop
    nop
    ldm McBSP0_DRR1, a				;读取drr10中的数据
    nop
    nop
    nop
    nop
***********    信号合并  先合并再输出,可观察采样波形**********
	sub  #4000h, a
	nop
	nop
	nop
	bc  nosub, NC
	sub #4000h, a
	b outspeech
nosub  add #4000h,a
	nop
	nop
	nop
outspeech	
***************信号合并***************

    stl a, *ar5				;将a中的数据(读取的数据)放入ar5中的地址中
    nop
    nop
    nop
*此段程序是使AD73311输出采样数据的D/A转换结果的

    ld *ar5, a				;将ar5中地址指向的数据存入a中
    nop
    nop
    nop
***********    信号合并  输出,如果使用此断程序,上面的合并程序不需要**********
;	sub  #4000h, a
;	nop
;	nop
;	nop
;	bc  nosub, NC
;	sub #4000h, a
;	b outspeech
;nosub  add #4000h,a
;	nop
;	nop
;	nop
;outspeech	
***************信号合并***************

  
    stlm a, 23h				;将数据从串口发送出去,这相当于同步回声
    nop
    nop
    nop
********************************
    stm	#_admemory,ar6
	nop
	nop
	ld  *ar6, a
	nop
	nop
	nop
	nop
	add #1, a
	nop
	nop
	nop
	stl a, *ar6				;接收数据的存放地址加1,仍然存入admemory地址中
    nop
    nop
    nop
    ssbx sxm
out    reg_restore
	rete			;开中断,从中断返回
    .end
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -