本节课介绍了T5L C51 绘制动态曲线 。
本视频教学由迪文开发者论坛用户 ID 熊家余 分享提供。
教学视频连接:https://www.yuanzige.com/course/detail/80041?section_id=81217
原视频链接:https://www.bilibili.com/video/BV1NQ4y1P7MW
本节课课程内容如下:
1.介绍本章节将利用DGUS Tool软件中的”动态曲线控件”来绘制曲线效果,在T5L迪文屏中总共支持8个通道的曲线,而曲线数据是需要缓冲区的,如果 8 通道曲线同时使用,0x1000-0x4FFF 将作为曲线缓冲区地址,此时该部分变量地址不能被其他控键使用,其他控键地址使用范围为0x5000-0xFFFF,当某曲线通道不被使用时,那么其所对应的缓冲区地址可以做其他用途。
2.例程设计2.1功能简介我们在”0启动界面”上放置一个”动态曲线控件”,然后当屏幕上电时,我们C51代码往0曲线通道上写入一个sin正弦曲线数据.
2.2 GUI界面设计主要是用到一个”动态曲线控件”。
2.3 C51代码设计我们可以直接利用在第1章节中已经创建好的C51项目工程模板,然后在此基础上进行修改. main.c文件的代码如下: #include "sys.h" #include <math.h>
//绘制正弦曲线 void sin_chart_draw() { #define X_POINTS_NUM 688 //需要688个数据点才能正好把X轴铺满 #define CHART_ID 0 //使用第一个曲线通道 float val; u16 point;
for(point=0;point<X_POINTS_NUM;point++) { val = point*(2*3.14159f/X_POINTS_NUM);//得到sin函数的x坐标 val = sin(val)*60+80;//将sin的值先扩大60,然后向上平移80,这样sin曲线看起来美观一点 sys_write_chart(CHART_ID,(u16)(val+0.5f));//写点 sys_delay_ms(10);//延时一下,可以看到曲线动态绘制的效果 } }
void main(void) { sys_init();//系统初始化 sin_chart_draw();
while(1) {
} }
|