boxiang 发表于 2013-9-1 07:15:02

C语言初学者请教


#include        "HIc.h"
#include        "HR7P90H.h"

#define uchar unsigned char       
#define uintunsigned int

//******************************

void isr(void) interrupt                //中断入口函数
{
_asm
        {
        AJMP        中断子程序
中断结束
        }
}

//******************************

void main()
{
_asm
        {
STA        nop
        nop
        GOTO        STA
        }
}

//以下这段程序,用怎样的语句,才能放在800H以后的单元呢?

(void*)(void)0x0800();

//void ()(0X0800)

{
_asm
        {
中断子程序
        nop
        AJMP        中断结束
        }
}

laujc 发表于 2013-9-1 08:22:06

为什么放到800H后呢?
c程序写的像汇编,还是多看一下别人代码如何写的吧

boxiang 发表于 2013-9-1 08:51:03

见笑了,初学的,只会汇编,而7P90用ICD又不支持纯汇编,所以只好放在C语言里跑程序了;
试验的项目是用7P90做空调控制器,程序比较大,C编译出来的HEX文件,2K内已无法完成,需要将有些程序放到800H后面的,自己以前没搞过C语言,所以还请赐教;
谢谢!

boxiang 发表于 2013-9-1 17:20:14

谢谢关注,问题已经解决。
用的是笨办法,就是将主程序控制在2K以内并接近2K,再将中断子程序和电子音乐程序捆绑在一起,这样编译器就不得不将这部分自动放在了800H开始的单元,整个汇编程序就可以在C编译环境中调试了。
实验过程中,觉得7P90的资源很丰富,做空调控制器,有点大材小用了。
与6P系列相比,二者在捕捉和PG电机的控制时间上,有一倍的数据差距,需要调整,其它的好象在移植时没多大问题。
再次谢谢关注。

qq11qqviki 发表于 2013-10-14 16:50:54

c程序写的像汇编,还是多看一下别人代码如何写的吧

linhui102 发表于 2013-10-21 17:23:23

新手加油。。

haiershuaijw 发表于 2013-11-14 22:53:39

7P90好像支持纯汇编的吧

cam0906 发表于 2014-5-12 15:01:29

我也新手哇,来取经的

Danylove 发表于 2014-5-28 09:06:28

看不懂,不看

songjie 发表于 2014-6-28 23:59:47

这难道是 C语言 + 汇编的编程?

rockyyangyang 发表于 2014-6-29 15:08:04

汇编????????????????                                    

lnso 发表于 2014-6-29 15:11:49

看不懂,见笑了

千年明月 发表于 2014-10-2 19:23:37

努力学习,加油哦

xiepan2010 发表于 2014-10-2 19:37:15

这是在用汇编吧

yuanbao502 发表于 2014-10-28 08:13:02

学习了,没耐心看完所有程序

tbcrv 发表于 2014-11-14 22:41:48

百度一下 我记得的有这个关于函数定位的方法。不过挺麻烦的。

pengshipower 发表于 2014-11-14 22:45:56

这个取决与具体的编译器,很难找到统一的规则。

Gallen.Zhang 发表于 2014-11-14 22:48:48

*((void (*)())0x800)();

太极风436 发表于 2014-11-14 23:47:31

laujc 发表于 2013-9-1 08:22
为什么放到800H后呢?
c程序写的像汇编,还是多看一下别人代码如何写的吧

这个事混编,应该是编译器能识别的

356053261 发表于 2014-12-4 08:41:44

感觉能用汇编的人都很强悍,我也只是偶尔夹那么一点点汇编
页: [1]
查看完整版本: C语言初学者请教