📄 oscillograph_v5.c
字号:
/****************************************************************************************
* 文 件 名:main.c
* 功 能:通过图形函数接口,演示矩形波的傅立叶逼近过程
* 说 明:将JP3短接。
****************************************************************************************/
#include "config.h"
#include "stdlib.h"
#include "math.h"
#include "GUI_BASIC.H"
#define PI 3.1415
#define TaskStkLengh 512
#define K 0.027
uint32 Guang_Biao=2; //默认光标指向"开始"
uint32 OK=0; //确定标志
uint32 Bei_Lv=1;
uint32 Stop=1; //停止状态标志位
OS_STK TaskStk0 [TaskStkLengh];
OS_STK TaskStk1 [TaskStkLengh];
OS_STK TaskStk2 [TaskStkLengh];
/********采样的变量定义**********/
//uint32 ADC_DATA1[260]={0};
uint32 ADC_DATA[260]={200,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; //存放转换结果
uint32 ADC_DATA_AVG=0; //存放平均值
uint32 COU=0; //下标
volatile uint32 count=0;
volatile uint32 maxwell=0; //采样显示数组的下标
//uint32 ADC_DATA_AV[100]={0}; //存储采样显示数据的数组
volatile uint32 Min_ADC=0; //最小值
volatile uint32 Max_ADC=0; //最大值
/***********************************/
OS_EVENT *Mybox; //定义消息邮箱
/****************************************************************************/
uint8 TG[5][16]={
{
0x00,0x00,0x00,0xFE,0x92,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00
},/*"T",0*/
{
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x70,
0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00
},/*"i",1*/
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,
0x44,0x44,0x38,0x40,0x3C,0x42,0x42,0x3C
},/*"g",2*/
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,
0x42,0x7E,0x40,0x40,0x42,0x3C,0x00,0x00
},/*"e",3*/
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEE,
0x32,0x20,0x20,0x20,0x20,0xF8,0x00,0x00
}/*"r",4*/
};
uint8 PJZH[3][32]={
{/*"平",0*/
0x7F,0xFC,0x01,0x00,0x21,0x10,0x11,0x18,
0x09,0x10,0x0D,0x20,0x09,0x40,0x01,0x00,
0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00
},
{/*"均",1*/
0x10,0x80,0x10,0xC0,0x10,0x84,0x10,0xFE,
0xFD,0x04,0x11,0x04,0x12,0x84,0x14,0x64,
0x10,0x44,0x16,0x1C,0x18,0x64,0xE3,0x84,
0x41,0x04,0x00,0x24,0x00,0x14,0x00,0x08
},
{/*"值",2*/
0x10,0x40,0x18,0x60,0x17,0xFC,0x10,0x40,
0x20,0x80,0x33,0xF8,0x62,0x08,0xA3,0xF8,
0x22,0x08,0x23,0xF8,0x22,0x08,0x23,0xF8,
0x22,0x08,0x22,0x08,0x2F,0xFE,0x20,0x00
}
};
uint8 NUM[10][16]={
{
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,
0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00
},/*"0",0*/
{
0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00
},/*"1",1*/
{
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,
0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00
},/*"2",2*/
{
0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,
0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00
},/*"3",3*/
{
0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,
0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00
},/*"4",4*/
{
0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,
0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00
},/*"5",5*/
{
0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,
0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00
},/*"6",6*/
{
0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,
0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00
},/*"7",7*/
{
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,
0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00
},/*"8",8*/
{
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,
0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00
}/*"9",9*/
};
uint8 mv[2][16]={
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x49,0x49,0x49,0x49,0x49,0xED,0x00,0x00
},/*"m",0*/
{
0x00,0x00,0x00,0xE7,0x42,0x42,0x44,0x24,
0x24,0x28,0x28,0x18,0x10,0x10,0x00,0x00
}/*"V",1*/
};
uint8 BL[2][32]={
{
0x08,0x80,0x08,0x40,0x17,0xFE,0x12,0x10,
0x31,0x18,0x51,0x90,0x11,0x20,0x17,0xFE,
0x10,0x00,0x13,0xF8,0x12,0x08,0x12,0x08,
0x12,0x08,0x13,0xF8,0x12,0x08,0x00,0x00
},/*"倍",0*/
{
0x02,0x00,0x01,0x00,0x7F,0xFE,0x41,0x00,
0x22,0x28,0x17,0xD0,0x04,0x80,0x11,0x10,
0x22,0x48,0x47,0xC4,0x01,0x20,0xFF,0xFE,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00
}/*"率",1*/
};
uint8 X[16]={
0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x18,
0x18,0x18,0x24,0x24,0x42,0xE7,0x00,0x00
};/*"X",2*/
uint8 S[16]={
0x00,0x00,0x00,0x3E,0x42,0x42,0x40,0x20,
0x18,0x04,0x02,0x42,0x42,0x7C,0x00,0x00
};/*"S",0*/
uint8 ZDZH[3][32]={
{
0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,
0x1F,0xF0,0x00,0x00,0xFF,0xFE,0x22,0x00,
0x3E,0xFC,0x22,0x88,0x3E,0x50,0x23,0x20,
0x3E,0x50,0xE2,0x8E,0x03,0x04,0x02,0x00
},/*"最",0*/
{
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80,
0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,
0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04
},/*"大",1*/
{
0x10,0x40,0x18,0x60,0x17,0xFC,0x10,0x40,
0x20,0x80,0x33,0xF8,0x62,0x08,0xA3,0xF8,
0x22,0x08,0x23,0xF8,0x22,0x08,0x23,0xF8,
0x22,0x08,0x22,0x08,0x2F,0xFE,0x20,0x00
}/*"值",2*/
};
uint8 ZXZH[3][32]={
{
0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,
0x1F,0xF0,0x00,0x00,0xFF,0xFE,0x22,0x00,
0x3E,0xFC,0x22,0x88,0x3E,0x50,0x23,0x20,
0x3E,0x50,0xE2,0x8E,0x03,0x04,0x02,0x00
},/*"最",0*/
{
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x09,0x40,0x0D,0x20,0x19,0x10,0x11,0x18,
0x21,0x0C,0x41,0x06,0x81,0x04,0x01,0x00,
0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00
},/*"小",1*/
{
0x10,0x40,0x18,0x60,0x17,0xFC,0x10,0x40,
0x20,0x80,0x33,0xF8,0x62,0x08,0xA3,0xF8,
0x22,0x08,0x23,0xF8,0x22,0x08,0x23,0xF8,
0x22,0x08,0x22,0x08,0x2F,0xFE,0x20,0x00
}/*"值",2*/
};
uint8 ZHQ[2][32]={
{
0x00,0x00,0x1F,0xFC,0x10,0x84,0x13,0xE4,
0x10,0x84,0x10,0x84,0x17,0xF4,0x10,0x04,
0x13,0xE4,0x12,0x24,0x12,0x24,0x13,0xE4,
0x22,0x24,0x20,0x04,0x40,0x14,0x80,0x08
},/*"周",0*/
{
0x22,0x00,0x22,0x7C,0x7F,0x44,0x22,0x44,
0x3E,0x44,0x22,0x7C,0x3E,0x44,0x22,0x44,
0x22,0x44,0xFF,0x7C,0x00,0x44,0x24,0x84,
0x22,0x84,0x43,0x14,0x81,0x08,0x00,0x00
}/*"期",1*/
};
uint8 PL[2][32]={
{
0x08,0x00,0x08,0xFE,0x4E,0x20,0x48,0x40,
0x48,0xFC,0xFE,0x84,0x00,0xA4,0x08,0xA4,
0x4A,0xA4,0x4A,0xA4,0x84,0xA4,0x08,0x50,
0x10,0x48,0x20,0x86,0xC3,0x02,0x00,0x00
},/*"频",0*/
{
0x02,0x00,0x01,0x00,0x7F,0xFE,0x41,0x00,
0x22,0x28,0x17,0xD0,0x04,0x80,0x11,0x10,
0x22,0x48,0x47,0xC4,0x01,0x20,0xFF,0xFE,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00
}/*"率",1*/
};
uint8 HZ[2][16]={
{
0x00,0x00,0x00,0xE7,0x42,0x42,0x42,0x42,
0x7E,0x42,0x42,0x42,0x42,0xE7,0x00,0x00
},/*"H",2*/
{
0x00,0x00,0x00,0x7E,0x84,0x04,0x08,0x08,
0x10,0x20,0x20,0x42,0x42,0xFC,0x00,0x00
}/*"Z",3*/
};
uint8 TZH[2][32]={
{
0x08,0x40,0x0C,0x20,0x0B,0xFE,0x10,0x00,
0x11,0xF8,0x31,0x08,0x51,0xF8,0x90,0x00,
0x17,0xFE,0x14,0x02,0x11,0xFC,0x10,0x20,
0x10,0x20,0x10,0x20,0x10,0xA0,0x10,0x40
},/*"停",0*/
{
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x08,0x80,0x08,0x80,0x08,0xFC,0x08,0x80,
0x08,0x80,0x08,0x80,0x08,0x80,0x08,0x80,
0x08,0x80,0x08,0x80,0xFF,0xFE,0x00,0x00
}/*"止",1*/
};
uint8 KSH[2][32]={
{
0x00,0x00,0x7F,0xFE,0x04,0x20,0x04,0x20,
0x04,0x20,0x04,0x20,0xFF,0xFE,0x04,0x20,
0x04,0x20,0x04,0x20,0x08,0x20,0x08,0x20,
0x10,0x20,0x20,0x20,0x40,0x20,0x00,0x00
},/*"开",0*/
{
0x10,0x20,0x18,0x30,0x10,0x20,0x10,0x48,
0xFC,0x84,0x25,0xFE,0x24,0x84,0x44,0x00,
0x44,0xFC,0x28,0x84,0x18,0x84,0x14,0x84,
0x22,0x84,0x42,0xFC,0x80,0x84,0x00,0x00
}/*"始",1*/
};
uint8 QP[2][32]={
{
0x08,0x00,0x0F,0xFC,0x10,0x00,0x2F,0xF8,
0x48,0x08,0x0F,0xF8,0x08,0x08,0x0F,0xF8,
0x04,0x00,0x07,0xF8,0x0C,0x10,0x12,0x60,
0x21,0x80,0x06,0x60,0x18,0x1E,0x60,0x04
},/*"复",0*/
{
0x09,0x00,0x0C,0xC0,0x10,0x40,0x17,0xFC,
0x20,0x00,0x34,0x10,0x52,0x18,0x52,0x10,
0x91,0x10,0x11,0x20,0x11,0x20,0x10,0x20,
0x10,0x40,0x1F,0xFE,0x10,0x00,0x00,0x00
}/*"位",1*/
};
uint8 SHZH[2][32]={
{
0x40,0x00,0x21,0xF0,0x31,0x10,0x21,0x10,
0x01,0x10,0x01,0x10,0xE2,0x0E,0x25,0xF8,
0x21,0x08,0x21,0x08,0x20,0x90,0x20,0x90,
0x28,0x60,0x30,0x90,0x23,0x0E,0x0C,0x04
},/*"设",4*/
{
0x3F,0xF8,0x24,0x48,0x24,0x48,0x3F,0xF8,
0x01,0x00,0x7F,0xFC,0x02,0x00,0x1F,0xF0,
0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,
0x10,0x10,0x1F,0xF0,0x10,0x10,0xFF,0xFE
}/*"置",5*/
};
uint8 MAXX[32]={ 0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
/***************************************************************************/
/*************************************************/
uint8 (* p1)[32]=PJZH; /*平均值*/
uint8 (* p2)[16]=NUM; //指向数字阵列的指针
uint8 (* p3)[16]=mv; /*mV*/
uint8 (* p4)[32]=ZDZH; /*最大值*/
uint8 (* p5)[32]=ZXZH; /*最小值*/
uint8 (* p6)[32]=ZHQ; /*周期*/
uint8 (* p7)[32]=PL; /*频率*/
uint8 (* p8)[32]=BL; /*倍率*/
uint8 (* p9)[16]=NUM; /*0,1,2,3,4,5,6,7,8,9*/
uint8 (* p10)[16]=HZ; /*HZ*/
uint8 (* p11)[32]=TZH; /*停止*/
uint8 (* p12)[32]=KSH; /*开始*/
uint8 (* p13)[32]=QP; /*清屏*/
uint8 (* p14)[32]=SHZH; /*设置*/
uint8 (* p15)[16]=TG; /*Tiger*/
//uint8 (* pa)[16]=TG;
/********************************************************/
/**********************************
void Line_MySIN(void)
{
uint32 x,y;
for(x=0;x<320;x++)
{
y=(100-95*sin(x*PI/120));
//y=10;
GUI_Point(x,y,RED);
}
}
**********************************/
/**********************************
void Line_MySIN(void)
{
uint32 x,y;
for(x=0;x<200;x++)
{
y=(100-95*ADC_DATA[x]/3300);
//y=10;
GUI_Point(x,y,RED);
}
}
**********************************/
/****************************************************************************
* 功 能:初始化背景和坐标系
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Coordinate(void)
{
GUI_FillSCR(BLUE); // 填充白色背景
GUI_HLine( 59, 0, 319, YELLOW); // 绘画x坐标轴
GUI_HLine( 59, 20, 319, YELLOW);
GUI_HLine( 59, 40, 319, YELLOW);
GUI_HLine( 59, 60, 319, YELLOW);
GUI_HLine( 59, 80, 319, YELLOW);
GUI_HLine( 59, 100, 319, YELLOW);
GUI_HLine( 59, 120, 319, YELLOW);
GUI_HLine( 59, 140, 319, YELLOW);
GUI_HLine( 59, 160, 319, YELLOW);
GUI_HLine( 59, 180, 319, YELLOW);
//GUI_HLine( 0, 200, 319, YELLOW);
//GUI_HLine( 0, 220, 319, YELLOW);
// GUI_HLine( 0, 240, 319, YELLOW);
//GUI_RLine(0, 0, 240, YELLOW); // 绘画y坐标轴
//GUI_RLine(20, 0, 240, YELLOW);
//GUI_RLine(40, 0, 240, YELLOW);
GUI_RLine(60, 0, 200, YELLOW);
GUI_RLine(80, 0, 200, YELLOW);
GUI_RLine(100, 0, 200, YELLOW);
GUI_RLine(120, 0, 200, YELLOW);
GUI_RLine(140, 0, 200, YELLOW);
GUI_RLine(160, 0, 200, YELLOW);
GUI_RLine(180, 0, 200, YELLOW);
GUI_RLine(200, 0, 200, YELLOW);
GUI_RLine(220, 0, 200, YELLOW);
GUI_RLine(240, 0, 200, YELLOW);
GUI_RLine(260, 0, 200, YELLOW);
GUI_RLine(280, 0, 200, YELLOW);
GUI_RLine(300, 0, 200, YELLOW);
GUI_RLine(320, 0, 200, YELLOW);
}
/****************************************************************************/
/*******************界面显示构架函数**********************************/
void Display_Frame(void)
{
uint8 i=0;
GUI_Initialize(); // 初始化LCM
GUI_FillSCR(WHITE); // 填充白色背景
Coordinate(); //画坐标
GUI_RectangleFill(0, 0,60, 200, MAGENTA); //画控制区的矩形
GUI_RectangleFill(0, 200,320, 240, DGREEN); //画参数区的矩形
//GUI_LoadLine(10,10,MAXX,32);
/********************画参数区****************************/
GUI_SetColor(BLACK,DGREEN);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -