迪文科技论坛

 找回密码
 立即注册
搜索
查看: 3959|回复: 10

在一个工程里如何实现多段OS代码写在一个ASM文件里?

[复制链接]

7

主题

23

回帖

104

积分

注册会员

Rank: 2

积分
104
发表于 2019-7-30 09:53:28 | 显示全部楼层 |阅读模式
就是,现在已有的例程只是能实现单一功能的OS代码,但是一个工程里需要用到很多代码来实现不同功能,但是如果这样的话,那主程序部分应该怎么写呢?就是从MAIN开始,比如说我要在一段代码里同时实现数据保存和密码登陆界面。
回复

使用道具 举报

26

主题

76

回帖

1112

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1112
发表于 2019-7-30 11:24:18 | 显示全部楼层
楼主可以用CALL去调用子函数,每个子函数写不一样的功能就好。类似这样子:
        
MAIN:
        CALL Modbus_Master        ;
        CALL Modbus_Slave        ;
        
        GOTO MAIN  

Modbus_Master:
       (子程序内容)

Modbus_Slave:
      (子程序内容)
回复

使用道具 举报

7

主题

23

回帖

104

积分

注册会员

Rank: 2

积分
104
 楼主| 发表于 2019-7-30 11:29:03 | 显示全部楼层
Mona 发表于 2019-7-30 11:24
楼主可以用CALL去调用子函数,每个子函数写不一样的功能就好。类似这样子:
        
MAIN:

那这样的话,就是
MAIN:

CALL 数据保存;
CALL 密码登陆;
GOTO MAIN
吗?这个分号;的作用是什么呢?
回复

使用道具 举报

26

主题

76

回帖

1112

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1112
发表于 2019-7-30 11:39:06 | 显示全部楼层
386972894 发表于 2019-7-30 11:29
那这样的话,就是
MAIN:

;可以不要,是如果这行代码你要写一点注释的话要先写个;号再写注释,我刚刚复制过来没有删掉而已,没有什么关系。
回复

使用道具 举报

26

主题

76

回帖

1112

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1112
发表于 2019-7-30 11:42:06 | 显示全部楼层
Mona 发表于 2019-7-30 11:39
;可以不要,是如果这行代码你要写一点注释的话要先写个;号再写注释,我刚刚复制过来没有删掉而已,没有什 ...

还要注意一下你的屏是不是K600+的,如果是K600+的DGUS屏,不用写GOTO MAIN的,我刚刚发的这个例子,是DGUS II的写法。如果你不确定是哪种的话,可以去问问迪文的客服,客服可以帮你查到是哪种系列的屏。
回复

使用道具 举报

7

主题

23

回帖

104

积分

注册会员

Rank: 2

积分
104
 楼主| 发表于 2019-7-30 12:20:17 | 显示全部楼层
Mona 发表于 2019-7-30 11:42
还要注意一下你的屏是不是K600+的,如果是K600+的DGUS屏,不用写GOTO MAIN的,我刚刚发的这个例子,是DGU ...

好的,我的屏幕就是DGUS II的,谢谢你
回复

使用道具 举报

7

主题

23

回帖

104

积分

注册会员

Rank: 2

积分
104
 楼主| 发表于 2019-7-30 13:35:36 | 显示全部楼层
Mona 发表于 2019-7-30 11:42
还要注意一下你的屏是不是K600+的,如果是K600+的DGUS屏,不用写GOTO MAIN的,我刚刚发的这个例子,是DGU ...

还有一个小问题,就是这个CALL的函数有没有先后顺序?就是你刚才写的,如果我想先实现Slave子程序再实现Master子程序可以写成你刚才那样吗?
回复

使用道具 举报

26

主题

76

回帖

1112

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1112
发表于 2019-7-30 13:54:13 | 显示全部楼层
386972894 发表于 2019-7-30 13:35
还有一个小问题,就是这个CALL的函数有没有先后顺序?就是你刚才写的,如果我想先实现Slave子程序再实现M ...

开机后,MAIN下面,从上到下执行。其实无所谓先后,因为程序一直在循环执行的,第一个执行完了又执行第二个,第二个执行完了又执行第一个,所以只有在上电后的第一个循环有先后,后面就都在不停循环了。
回复

使用道具 举报

7

主题

23

回帖

104

积分

注册会员

Rank: 2

积分
104
 楼主| 发表于 2019-7-30 14:04:26 | 显示全部楼层
Mona 发表于 2019-7-30 13:54
开机后,MAIN下面,从上到下执行。其实无所谓先后,因为程序一直在循环执行的,第一个执行完了又执行第二 ...

那就是说,就算几个毫不相干的功能,比如数据保存、中英文界面切换、登陆密码锁也可以就这样随便排下去吗?
回复

使用道具 举报

26

主题

76

回帖

1112

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1112
发表于 2019-7-30 14:49:28 | 显示全部楼层
386972894 发表于 2019-7-30 14:04
那就是说,就算几个毫不相干的功能,比如数据保存、中英文界面切换、登陆密码锁也可以就这样随便排下去吗 ...

是的,没有毛病,放心大胆去写吧。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-4-15 02:50 , Processed in 0.026499 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表