迪文科技论坛

 找回密码
 立即注册
搜索
查看: 6791|回复: 12

【提问】求OS定时器的例子

[复制链接]

6

主题

27

回帖

109

积分

注册会员

Rank: 2

积分
109
发表于 2019-7-25 16:37:29 | 显示全部楼层 |阅读模式
如题!如题!如题!如题!
回复

使用道具 举报

0

主题

239

回帖

1832

积分

金牌会员

Rank: 6Rank: 6

积分
1832
发表于 2019-7-25 16:56:01 | 显示全部楼层
不知道楼主是哪个系列的OS,是DGUS II系列的还是K600+的屏?
回复

使用道具 举报

0

主题

239

回帖

1832

积分

金牌会员

Rank: 6Rank: 6

积分
1832
发表于 2019-7-25 17:05:36 | 显示全部楼层
T5os基本图形剪切实现的 仿ppt切换页面效果os ,坐标算好,延时40ms左右,有用到定时功能,T5的屏体验效果很流畅。可以参考一下

本帖子中包含更多资源

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

x
回复

使用道具 举报

6

主题

27

回帖

109

积分

注册会员

Rank: 2

积分
109
 楼主| 发表于 2019-7-31 08:55:23 | 显示全部楼层
qjhzh 发表于 2019-7-25 17:05
T5os基本图形剪切实现的 仿ppt切换页面效果os ,坐标算好,延时40ms左右,有用到定时功能,T5的屏体验效果 ...

谢谢~谢谢~
回复

使用道具 举报

0

主题

1

回帖

17

积分

新手上路

Rank: 1

积分
17
发表于 2019-9-14 09:19:40 | 显示全部楼层
请问K600+怎么使用定时器,谢谢!
回复

使用道具 举报

0

主题

220

回帖

2566

积分

金牌会员

Rank: 6Rank: 6

积分
2566
发表于 2019-9-16 08:58:55 | 显示全部楼层
K600+的定时器比如80指令给0x4A 4B寄存器一个值, 5a a5 04 80 4A 13 38  ;定时20秒左右,1338H=5000,5000*4=20000MS,然后5a a5 03 81 4A 02 读指令 读出来的数会自减,等约20秒读的时候  应该读出来的值是0  

一般是也可以用OS去实现的,K600+的自减定时器,原理是给相关的寄存器赋值之后,会自减到0,我们可以判断里面的值是否为0,来获取一个不精准的延时,或者利用K600+的运行周期运行,INC对某个寄存器进行自增,然后判断运行了多少个周期,一种在os程序处理的不精确延时的一种方法。
(如果需要比较准确的1秒以上的时间,可以用屏的RTC比较处理)

使用到timer寄存器,OS里用MOVDR指令MOVRD指令,将定时器寄存器的值进行交换处理去实现。

程序容易出错的地方是要控制给定时器赋值的时候只赋值一次,后面时间自减为0了,根据实际情况是去重新给定时器寄存器赋值。
附件有例子可以参考下。

IJNE R100,0,main
LDBR R100,1,1 ;先定时,程序只执行一次R100是从R0-R255之间随意取的一个寄存器,用于定时器启动标志寄存器,此处置1,只让程序执行一次,避免重复运行到此行的时候给定时器重新复制
Set_Time:
LDBR R110,13H,1 ;定时20秒左右,1338H=5000,5000*4=20000MS
LDBR R111,38H,1
MOVRD R110,4AH,2
main:
。。。。
。。。。
MOVDR 4AH,R160,2 ; 判断计时器中的数据是否自减为零,否,计时
IJNE R160,0xxx
IJNE R161,0,xxx
LDBR R100,0,1 ;R100置0,根据实际情况将定时器填数的标志寄存器清0









本帖子中包含更多资源

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

x
回复

使用道具 举报

45

主题

254

回帖

3787

积分

论坛元老

Rank: 8Rank: 8

积分
3787
发表于 2019-9-23 23:28:12 | 显示全部楼层
wnly 发表于 2019-9-16 08:58
K600+的定时器比如80指令给0x4A 4B寄存器一个值, 5a a5 04 80 4A 13 38  ;定时20秒左右,1338H=5000,5000* ...

受教了,
IJNE R100,0,main
LDBR R100,1,1 ;先定时,程序只执行一次R100是从R0-R255之间随意取的一个寄存器,用于定时器启动标志寄存器,此处置1,只让程序执行一次,避免重复运行到此行的时候给定时器重新复制
Set_Time:
LDBR R110,13H,1 ;定时20秒左右,1338H=5000,5000*4=20000MS
LDBR R111,38H,1
MOVRD R110,4AH,2
回复

使用道具 举报

6

主题

23

回帖

101

积分

注册会员

Rank: 2

积分
101
发表于 2020-11-4 09:55:28 | 显示全部楼层
wnly 发表于 2019-9-16 08:58
K600+的定时器比如80指令给0x4A 4B寄存器一个值, 5a a5 04 80 4A 13 38  ;定时20秒左右,1338H=5000,5000* ...

请问,单片机给触控屏下发命令后,触控屏如何处理单片机下发的命令?
触控屏开始倒计时,倒计时时间由设定值(0-60秒钟的一个值)比如,60或者50  40  30 ,不是固定的数,倒计时时间减小到0后 ,触控屏给单片机下发指令。。。。如何实现呢
回复

使用道具 举报

0

主题

714

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10153
发表于 2020-11-4 10:25:54 | 显示全部楼层
ytz008ytz 发表于 2020-11-4 09:55
请问,单片机给触控屏下发命令后,触控屏如何处理单片机下发的命令?
触控屏开始倒计时,倒计时时间由设 ...

触摸屏处理单片机下发的指令,然后实现计时的功能,需要在触摸屏里面写os程序,单片机可以向屏的某个变量地址发送一个标志位,然后os程序读取变量地址的值,开始计时:或者os程序直接读取串口缓冲区的数据,读到某个特殊的数据开始启动计时程序(如果是T5或者T5L屏需要使用串口4)。
沧海横流,方显英雄本色。
回复

使用道具 举报

6

主题

23

回帖

101

积分

注册会员

Rank: 2

积分
101
发表于 2020-11-6 09:42:53 | 显示全部楼层
Lreamy 发表于 2020-11-4 10:25
触摸屏处理单片机下发的指令,然后实现计时的功能,需要在触摸屏里面写os程序,单片机可以向屏的某个变量 ...

单片机如何向变量地址0011H  发送标志位呢?有相关代码可以参考吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-15 07:20 , Processed in 0.042941 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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