打印

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

[复制链接]
2076|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 | 只看该作者

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

使用特权

评论回复
5
sz_kd|  楼主 | 2008-1-14 16:27 | 只看该作者

顶啊,有人知道吗

使用特权

评论回复
6
sz_kd|  楼主 | 2008-1-14 20:08 | 只看该作者

顶上去

使用特权

评论回复
7
yexinkfrqw| | 2008-1-14 21:01 | 只看该作者

用C编汇编

我也很想知道,顶一个!

使用特权

评论回复
8
sz_kd|  楼主 | 2008-1-14 21:07 | 只看该作者

现在改用C写了

发现这个宏不好写啊

使用特权

评论回复
9
sz_kd|  楼主 | 2008-1-14 21:14 | 只看该作者

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

使用特权

评论回复
10
sz_kd|  楼主 | 2008-1-14 21:22 | 只看该作者

不知道看到没有了

使用特权

评论回复
11
hotpower| | 2008-1-14 22:04 | 只看该作者

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

使用特权

评论回复
12
sz_kd|  楼主 | 2008-1-14 22:30 | 只看该作者

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

就是玩不转C的宏才发上来的啊

使用特权

评论回复
13
sz_kd|  楼主 | 2008-1-14 22:33 | 只看该作者

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

想懒点都不行,还得自己计算,汇编话就不用自己算了

使用特权

评论回复
14
hotpower| | 2008-1-15 01:52 | 只看该作者

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

宏有好坏之分~~~

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

函数基本和宏相反~~~

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

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

建议你还是搞函数吧~~~

使用特权

评论回复
15
sz_kd|  楼主 | 2008-1-15 09:18 | 只看该作者

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

现在就是不想用函数,费空间,并且这段程序只是用来给定时器设置初值和分频,
能用好的话很发方便
PS:关于你说的那几点和有道理,先谢谢了!

使用特权

评论回复
16
sz_kd|  楼主 | 2008-1-15 09:26 | 只看该作者

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

4194

帖子

1

粉丝