请选择 进入手机版 | 继续访问电脑版

迪文科技论坛

 找回密码
 立即注册
搜索
热搜: T5L 视频屏 DGUS OS
查看: 1150|回复: 14

用DWIN C Compiler怎么写出初始化程序(只执行一次)

[复制链接]

6

主题

30

帖子

95

积分

注册会员

Rank: 2

积分
95
发表于 2019-8-9 16:55:53 | 显示全部楼层 |阅读模式
说明:
      DWIN OS程序在每个DGUS周期(80/120/160/200mS)都完整运行一遍,所以DWIN OS程序中不能出现死循环或者通过指令循环的延时。

DWIN OS程序每次都完整执行一遍,那怎么让一些初始化程序只执行一次呢?(用C语言实现)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

6

帖子

89

积分

注册会员

Rank: 2

积分
89
发表于 2019-8-9 20:26:30 | 显示全部楼层
我看楼主的截图那几个是DGUS周期是K600+的OS开发指南。K600+的标准DGUS是不支持DWIN C Compiler来开发的。
只有最新的T5和T5L系列DGUS II支持,DGUS II系列的OS跟K600+的还是有很多不同的。
楼主在论坛可以看看这几个分类的资料,如果时K600+的就看K600+的分类里面的
http://forum.dwin.com.cn/forum.php?mod=forumdisplay&fid=66

另外OS初始化程序可以设置一个标准位(用一个寄存器判断,比如R255=0时执行一次后给R255赋值1后此步将不会在执行)
回复

使用道具 举报

6

主题

30

帖子

95

积分

注册会员

Rank: 2

积分
95
 楼主| 发表于 2019-8-9 22:37:59 | 显示全部楼层
gj1234567 发表于 2019-8-9 20:26
我看楼主的截图那几个是DGUS周期是K600+的OS开发指南。K600+的标准DGUS是不支持DWIN C Compiler来开发的。
...

不知道如何用C实现寄存器的判断
回复

使用道具 举报

0

主题

83

帖子

851

积分

高级会员

Rank: 4

积分
851
发表于 2019-8-10 13:17:57 | 显示全部楼层
请问一下楼主使用的是什么型号的屏?
回复

使用道具 举报

6

主题

30

帖子

95

积分

注册会员

Rank: 2

积分
95
 楼主| 发表于 2019-8-11 10:02:46 | 显示全部楼层
土匪老张的春天 发表于 2019-8-10 13:17
请问一下楼主使用的是什么型号的屏?

DMT12800K070_A2WTC  T5UID3
回复

使用道具 举报

79

主题

200

帖子

1166

积分

超级版主

Rank: 8Rank: 8

积分
1166
发表于 2019-8-12 09:17:09 | 显示全部楼层
本帖最后由 神秘の宅叔 于 2019-8-12 09:18 编辑

楼主是用的DWIN C Compiler,那么我这个例子可以参考下
        char once_flag[1]={0};                                
        if(0==once_flag[1])                           
        {
        char vp_data[4]={0x5a,0x01,0x00,0x01}; //页面切换01
        write_dgus_vp(0x0084,vp_data,2);
        once_flag[1]=1;                        
        }


..........



以持久的热情,玩转最酷的串口屏技术!
回复

使用道具 举报

6

主题

33

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2019-8-13 09:55:21 | 显示全部楼层
  1. int main()
  2. {
  3.         // 初始化

  4.         while(1){
  5.                 // 循环处理                       

  6.         }

  7.         return 1;
  8. }
复制代码
回复

使用道具 举报

6

主题

30

帖子

95

积分

注册会员

Rank: 2

积分
95
 楼主| 发表于 2019-8-13 11:16:32 | 显示全部楼层

DWIN OS程序在每个DGUS周期(80/120/160/200mS)都完整运行一遍,那就不能这样初始化。
回复

使用道具 举报

6

主题

30

帖子

95

积分

注册会员

Rank: 2

积分
95
 楼主| 发表于 2019-8-16 11:52:02 | 显示全部楼层
神秘の宅叔 发表于 2019-8-12 09:17
楼主是用的DWIN C Compiler,那么我这个例子可以参考下
        char once_flag[1]={0};               ...

按照C语言的规范,once_flag数组中只有一个数(只有once_flag[0]),once_flag[1]的话会提示超出范围,但为什么可以这样用?
回复

使用道具 举报

0

主题

229

帖子

1304

积分

金牌会员

Rank: 6Rank: 6

积分
1304
发表于 2019-8-16 13:12:12 | 显示全部楼层
Sea_Star 发表于 2019-8-16 11:52
按照C语言的规范,once_flag数组中只有一个数(只有once_flag[0]),once_flag[1]的话会提示超出范围,但 ...

那个once_flag只是一个全局变量,可以定义有N个字节的数组,或者用1个其他的全局变量表示也是一样,只是1个标志位
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2021-4-17 01:57 , Processed in 0.018824 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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