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

📄 theta_get.asm

📁 利用2407编写的PWM整流器控制程序
💻 ASM
字号:
****************************************
*   File name: theta_get.asm

****************************************
    .include "F2407REGS.H"
    .def     INIT_THETA,THETA_GET
    .def     D_THETA,N
    .ref     DATA_CACHE 
  
NUMERA   .usect "theta",1
DENOM    .usect "theta",1
D_THETA  .usect "theta",1  
N        .usect "theta",1
**********************************
*    初试化相位检测

**********************************
    
INIT_THETA:
    NOP
    LDP   #D_THETA
    SPLK  #0,N
    SPLK  #147BH,D_THETA    ;Q13 0.64*2^13       
    LDP   #CAPCONA>>7       ;装载捕获控制寄存器页地址
    SPLK  #1008H,CAPCONA    ;使能CAP3,并检测下升沿
    SPLK  #0004H,EVAIMRC    ;使能捕获中断
    SPLK  #0FFFFH,EVAIFRC
    LDP   #NUMERA
    SPLK  #7D00H,NUMERA    ;Q2 8000*2^2
    NOP
    RET
**********************************************
**  n*2000(T1PR)*25=T2CNT*64*25
;   n=T2CNT*64/2000
;   D_THETA=256/n, (0-360)->(0-256)
;   D_THETA=256*2000/(T2CNT*64)=8000/T2CNT

**********************************************
THETA_GET:
    NOP
    LDP   #D_THETA      ;FOR TEST
    LACL  N             ;FOR TEST
    SUB   #360          ;FOR TEST
    BCND  JUMP,LT       ;FOR TEST
    LDP   #GPTCONA>>7
    LACL  T2CNT
    ;LACL  Tb             ;FOR TEST
    ;CALL  DATA_CACHE   ;FOR TEST
    ;LDP   #GPTCONA>>7  ;FOR TEST
    SPLK  #0,T2CNT
    AND   #8FFFH
    LDP   #D_THETA
    SACL  DENOM
    LACC  NUMERA,2    ;Q2 8000*2^2
    RPT   #24
    SUBC  DENOM
    SACL  D_THETA          ;Q13 
    SPLK  #147BH,D_THETA   ;FOR TEST Q13 0.64*2^13  
    SPLK  #0,N 
    ;LACL  N            ;FOR TEST
    ;CALL  DATA_CACHE   ;FOR TEST
JUMP

    RET
    

⌨️ 快捷键说明

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