开发过程中需要以下材料:
软件环境: DWIN OS ASM Builder V1.5
硬件环境:DW K600+平台
迪文屏操作手册
SD卡(更新代码)
应用场景
在开发过程中,我们常常需要保存用户数据,迪文屏就有这个功能。我们可以直接把数据保存在屏幕中,这样减少屏幕与下位机的交互,特别是数据量大的时候,这一点更明显。
示例代码1
:以下代码实现把数据0XFFFF0001写入地址0X0130 0000-0X0130 0001中,此处把写用户数据封装成模块,方便程序多次调用。
LDWR R10,0XFFFF; 把要保存的数据,写入寄存器R10-R13
LDWR R12,0X0001
LDWR R4,0X0130;数据保存的地址写入R4-R6
LDWR R6,0X0000
CALL 写2W用户数据
写2W用户数据:
LDWR R0,0X1001;r0 r1指定变量地址
MOVXR R10,0,2;把要写入的数据,临时存储在0x1001这个地址中
MOVXL 3,2;2字的数据写入用户存储区
RET
示例代码2
:以下代码实现从地址0X0130 0000-0X0130 0001中读出2字的数。
LDWR R4,0x0130 ;
LDWR R6,0x0000
CALL 读2W用户数据;
读2W用户数据: ;读出到1001
LDWR R0,0x1001;
MOVXL 2,2;读出序号内容到0x1001
RET
示例代码3
下述代码实现类似指针C语言指针变量的功能;
给定的地址中(R4-R6)存储的内容为一个地址值,通过对内容地址进行加操作,得到一个新地址,最后向新地址赋值R56-R59
调用这个子函数时,只需给R4-R6,R36-R39,R56-R59赋初值即可。
READ_ADD_WRITE_DATA:
;功能:根据给定的地址--读出给定地址内容--对内容加操作--以新内容为地址写入数据
;参数:给定地址:R4-R6,内容增量:R36-R39,写入数据:R56-R59
LDWR R0,0x1001;
MOVXL 2,2;读出内容
;加操作
LDBR R40,0,16;清空寄存器组
MOV R36,R44,4 ;输入内容增量
MOVXR R40,XR,2
COMTXI 0,R40,8
ADD R40,R44,R48;R52 R53 R54 R55
COMTXI 0,R52,8;地址 01300002
;写入
MOV R52,R4,4
LDWR R0,0X1001;
MOVXR R56,RX,2
MOVXL 3,2 ;写
RET