请教在汇编中下面一段宏程序用C的宏怎么写

[复制链接]
3029|15
 楼主| sz_kd 发表于 2008-1-14 15:14 | 显示全部楼层 |阅读模式
Fcrystal        =       4000000          ;unit: Hz 
Time            =          140        ;US 
GetTimeMC              Time
c_valOfT0M              EQU     #ValOfTimeM   ;T0多少分频
c_valOfT0C              EQU     #ValOfTimeC     ;T0初值


GetTimeMC  MACRO  Time
       @s_VALUE    =    Time * (Fcrystal / 1000) / 8000    
       @s_RATE    =    0x70                

       REPEAT    7    ;循环执行7次意思            
        IF    @s_VALUE > 256
            @s_VALUE = @s_VALUE / 2
            @s_RATE    = @s_RATE - 0x10    
        ENDIF
       ENDM

       IF    @s_VALUE > 256
        ERROR    time over range
            exitm
       ELSE
        ValOfTimeM      =       @s_RATE
        ValOfTimeC      =       256-@s_Value
       ENDIF
       endm    
 楼主| sz_kd 发表于 2008-1-14 15:17 | 显示全部楼层

各位DX帮忙看一下

现在改用C语言写发现这个宏不知道怎么写
这个宏目的是为了程序在编译时候自动计算出定时器的分频和初值,避免自己计算
 楼主| sz_kd 发表于 2008-1-14 15:18 | 显示全部楼层

Hotpower大叔来帮忙啊

 楼主| sz_kd 发表于 2008-1-14 15:24 | 显示全部楼层

顶,快过年了,人气不旺啊

 楼主| sz_kd 发表于 2008-1-14 16:27 | 显示全部楼层

顶啊,有人知道吗

 楼主| sz_kd 发表于 2008-1-14 20:08 | 显示全部楼层

顶上去

yexinkfrqw 发表于 2008-1-14 21:01 | 显示全部楼层

用C编汇编

我也很想知道,顶一个!
 楼主| sz_kd 发表于 2008-1-14 21:07 | 显示全部楼层

现在改用C写了

发现这个宏不好写啊
 楼主| sz_kd 发表于 2008-1-14 21:14 | 显示全部楼层

hotpower大叔帮我看看那宏怎么写啊

 楼主| sz_kd 发表于 2008-1-14 21:22 | 显示全部楼层

不知道看到没有了

hotpower 发表于 2008-1-14 22:04 | 显示全部楼层

晕~~~早不玩宏汇编了...建议把C学好~~~

 楼主| sz_kd 发表于 2008-1-14 22:30 | 显示全部楼层

现在 就是要用C的宏来写啊

就是玩不转C的宏才发上来的啊
 楼主| sz_kd 发表于 2008-1-14 22:33 | 显示全部楼层

这个带参数的宏我试了半天就是不行

想懒点都不行,还得自己计算,汇编话就不用自己算了
hotpower 发表于 2008-1-15 01:52 | 显示全部楼层

倒塌了!!!C肯定是用函数的,用宏太倒塌~~~

宏有好坏之分~~~

好---不用调用,可以提高速度
坏---增加代码长度,仿真不到宏的内部即设置断点

函数基本和宏相反~~~

好---减少代码长度,仿真可以到函数的内部即设置断点
坏---需要调用,降低速度

所以就有空间换时间和时间换空间的2个说法~~~

建议你还是搞函数吧~~~
 楼主| sz_kd 发表于 2008-1-15 09:18 | 显示全部楼层

Hotpower大叔,要是用函数的话很容易

现在就是不想用函数,费空间,并且这段程序只是用来给定时器设置初值和分频,
能用好的话很发方便
PS:关于你说的那几点和有道理,先谢谢了!
 楼主| sz_kd 发表于 2008-1-15 09:26 | 显示全部楼层

呵呵,hotpower大叔真是夜猫子,半夜帮我回答问题

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

本版积分规则

64

主题

4194

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部