18507899802 发表于 2020-12-16 21:08:26

【提问】C51代码写实时曲线的描述指针问题

不知道有没有人和我一样,同样遇到这样的坑,花了很长的时间实测才把坑填上先看一下地址格式:

使用官方的函数写寄存器发现无法控制纵轴的放大倍数、横轴间隔。
写横轴间09隔寄存器,发现曲线的粗细会自动变回默认0的宽度。
写纵轴放大倍数08,无法准确设定到预设值,而且会变得很离谱。

使用的是T5L_UI_DGUS2_V40_20201215.zip当前最新版的固件

测试结果发现:写VP指针的方式和SP指针的方式所区别,因此重新写交互函数,重写后问题解决。
重写后的写SP指针函数:

zouxianxin 发表于 2023-1-4 10:58:53

你好可以看一你这个控制纵轴,横轴变化的代码吗

YRD 发表于 2023-5-6 16:09:11

我也是搞这个曲线的缩放和增加半天不管用没想到是系统函数出现了错误,我换了一下你的成了,大哥nb有啥好东西再发发
/**
* @brief改写字长度纵轴放大倍数,实现曲线Y轴方向缩放
* @paramval: 缩放的数据
* @paramsp:迪文屏地址
* @retval
*/
void Dwinc_CurveyScaling(u16 sp,u16 val)
{
        #define Y_SCALING sp+8
        write_dgus_sp(Y_SCALING,(u8*)&val,1);       
}


/**
* @brief改写字长度纵轴放大倍数,实现曲线x轴方向缩放
* @paramval: 缩放的数据
* @paramsp:迪文屏地址
* @retval
*/
void Dwinc_CurvexScaling(u16 sp,u8 val)
{
        u16 temp;
        #define X_SCALING (sp+9)
        sys_read_vp(X_SCALING,(u8*)&temp,1);
        temp &=0xff00;
        temp |=(u8)val;
        write_dgus_sp(X_SCALING,(u8*)&temp,1);       
}

/**
* @brief曲线的隐藏
* @paramsp: 曲线的通道
*/

void Dwinc_ValHide(u16 sp)
{
        u32 temp =0x73739A9A;
        #define No1sp+1
        u32 bug = 0;
        sys_read_vp(No1,(u8*)&bug,2);
        if(bug !=temp)
        {
                Coordinate = bug;
        }
        sys_write_vp(No1,(u8*)&temp,2);
}


/**
* @brief曲线的显示
* @paramsp: 曲线的地址
*/

void Dwinc_ValDisplay(u16 sp)
{
        #define No1sp+1
        //sys_read_vp(No1,(u8*)&Coordinate,2);
        if(Coordinate !=0)
                sys_write_vp(No1,(u8*)&Coordinate,2);
}

Dearall 发表于 2023-5-7 09:07:09

YRD 发表于 2023-5-6 16:09
我也是搞这个曲线的缩放和增加半天不管用没想到是系统函数出现了错误,我换了一下你的成了,大哥nb有啥好东 ...

赞赞赞,感谢分享

491612982 发表于 2023-11-14 16:46:00

YRD 发表于 2023-5-6 16:09
我也是搞这个曲线的缩放和增加半天不管用没想到是系统函数出现了错误,我换了一下你的成了,大哥nb有啥好东 ...

大佬,请问还有其他的系统函数吗???官方的资料太乱了

491612982 发表于 2023-11-14 16:50:18

大佬,请问还有其他的系统函数吗???官方的资料太乱了
最近在搞这曲线,太难了
页: [1]
查看完整版本: 【提问】C51代码写实时曲线的描述指针问题