1495|0

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

DSP5410实现PN码(汇编源代码) [复制链接]

.title   "PRODUCE_PN.asm"
            .mmregs
            .bss PN,8
            .bss SEQUENCE,255*2
STACK       .usect   "STACK",80
INIT_ST0    .set      1800h              ;st0的初值         
INIT_ST1    .set      2800h              ;st1的初值
order       .set      8                  ;本原多项式的阶数
pn_len      .set      255                ;产生的PN码的码长
            .global   _c_int00
            .data
coefficient:
            .word 0001h ,0000h, 0000h, 0000h  
            .word 0001h, 0001h, 0001h, 0000h
            .sect   "vector"
;--------------------------------------------------------------------
; interrupte vector table !
;--------------------------------------------------------------------
            
int_reset:      b _c_int00
                nop
                nop
                .space 72*16
int_tint:       b  main
          nop
          nop
                .space 48*16
                .text
_c_int00:                              
             STM      #0,IMR
             STM      #0x1020,PMST
             STM      #0x0010,TCR
             STM      #2499,PRD
             STM      #0x0008,IMR
             STM      #0x0030,TCR            ;以上为对定时器的设置,以确定码速
            
             STM      #INIT_ST0,ST0
             STM      #INIT_ST1,ST1          ;初始化st0,st1,其中CMPT=0,FRCT=0
             STM      #STACK+20,SP
            .asg      AR2,PN_POINTER
            .asg      AR3,COEFF_TABLE
            .asg      AR4,FA
            .asg      AR5,SEQUENCE_POINTER
             STM      PN,PN_POINTER
             STM      SEQUENCE,SEQUENCE_POINTER
             ST       #1,*PN_POINTER+
             ST       #(order-2),FA
             MVMD     FA,BRC      
             RPTB     INIT_PN-1
             ST       #0,*PN_POINTER+
             nop
            
INIT_PN:                                      ;将PN码的初值设为00000001
             ST       #(pn_len-1),FA
             MVMD     FA,BRC
             RPTB     INIT_SEQUENCE-1
             ST       #0,*SEQUENCE_POINTER+   ;将所得的PN码序列SEQUENCE的存储区初始化为0
             NOP
INIT_SEQUENCE:
            STM       SEQUENCE,SEQUENCE_POINTER
            STM       PN,PN_POINTER
            STM       coefficient,COEFF_TABLE
            STM       #order,BK
            STM       #1,AR0
            RSBX      INTM
            STM       #0x0000,TCR             ;启动定时器
WAIT:       NOP
            NOP
            B          WAIT
main:       MVDD       *PN_POINTER,*SEQUENCE_POINTER+
            RPTZ       A,#(order-1)
            MAC        *PN_POINTER+0%,*COEFF_TABLE+0%,A
            AND        #1,A
            STL        A,*PN_POINTER+0%
            RETE

点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表