登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

不好意思,再麻烦一下大家

作者:冷若寒 栏目:单片机
不好意思,再麻烦一下大家
斑竹,大侠们:
      找来找去,发现手头上的这个定点16/8的运算程序不好用啊,不知各位有何简单一点的没有啊,我急着要用,大家帮帮忙啊!
;*************************************************************************
;15/7 PIC16C74A fixed point divide routines
;*************************************************************************
    
;*************************************************************************
;被除数为16位,除数为8位无符号
;入口条件:AARGB_H,AARGB_L被除数,BARGB0除数
;出口条件:AARGB_H,AARGB_L商,REMB0余数
;max timing : 163 clk
;min timing : 163 clk
;pm:42        dm: 5
;************************************************************************
udiv1608    code
udiv_1608
    clrf    remb0
    movlw    .8
    movwf    loopcount
loopu1608a
    rlf     aargb_h,w
    rlf     remb0,f
    movf    bargb0,w
    subwf    remb0,f

    btfsc    status,c
    goto    uok68a
    addwf    remb0,f
    bcf     status,c
uok68a
    rlf     aargb_h,f
    decfsz    loopcount,f
    goto    loopu1608a
    clrf    TEMP
    
    movlw    0x08    
    movwf    loopcount

loopu1608b
    rlf     aargb_l,w
    rlf     remb0,f
    rlf     TEMP,f
    movf    bargb0,w
    subwf    remb0,f

    clrf    aargb5
    clrw    
    btfss    status,c
    incfsz    aargb5,w
    subwf    TEMP,f
    
    btfsc    status,c
    goto    uok68b
    movf    bargb0,w
    addwf    remb0,f
    clrf    aargb5
    clrw
    btfsc    status,c
    incfsz    aargb5,w
    addwf    TEMP,f
    
    bcf     status,c
uok68b
    rlf     aargb_l,f
    decfsz    loopcount,f
    goto    loopu1608b
    return

d_add
       movf    accalo,w
    addwf   accblo, f       ;add lsb
    btfsc   status,c        ;add in carry
    incf    accbhi, f
    movf    accahi,w
    addwf   accbhi, f       ;add msb
    retlw   0x00

d_sub
     comf    accalo, f       ; negate acca ( -acca -> acca )
    incf    accalo, f
    btfsc   status,z
    decf    accahi, f
    comf    accahi, f
    call    d_add    
    retlw   0x00


2楼: >>参与讨论
xieyuanbin
我那个求平均值的贴里有一个运算例程你可参考。
 
3楼: >>参与讨论
冷若寒
喔,谢谢斑竹了,那个贴保存了,但是还没看
喔,谢谢斑竹了,那个贴保存了,但是还没看

参与讨论
昵称:
讨论内容:
 
 
相关帖子
用什么算法可以使软件延时更准确?
A/D
在线调试会不会对AD有影响。
单片机的主频用4m的晶振怎么实现精确的计时呢
我用C写的软件,编译正确,软仿真正确不可以仿真,为什么?
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号