要想实现动态显示LCD低压有源滤波
屏幕,我们就得将上节课老师上课所讲的内容和老师所给的代码进行回顾一下讲一讲老师所给的代码所讲的内容,从而我们在课堂又实现了正方形的或长方形的显示LCD屏幕。基于我们对老师所给代码的了解,我们可以初步的设想一下,如何使自己的LCD屏幕动态出现呢?要分为那几个步骤呢?我想应分为: 将中心点坐标要移到某个角落————>设计自己的运行轨道————>选出几个特殊的点出x或y的关系—————>设计代码。
比如将圆从右下角经过屏幕上方中心点在移动到左下角模型代码如下:
#include "2440addr.h"
#include "option.h"
//#define yValue 136 // yValue将原代码的常量改成了变量;
//#define xValue 240 // xValue将原代码的常量改成了变量;
int yValue=36;//确定圆的中心点位置即yValue起始值
蒸压加气块
int xValue=40;// 确定圆的中心点位置即xValue起始值
#define N 20
#define U32 unsigned int
#define M5D(n) ((n) & 0x1fffff)
#define LCD_WIDTH 480
#define LCD_HEIGHT 272
#define VSPW (3-1)
#define VBPD (15-1)
#define VFPD (12-1)
//水平同步信号的脉宽、后肩和前肩
#define HSPW (30-1)
#define HBPD (18-1)
#define HFPD (20-1)
//显示尺寸
#define LINEVAL (LCD_HEIGHT-1)
#define HOZVAL (LCD_WIDTH-1)
//for lcdcon1
#define CLKVAL_TFT 6
#define MVAL_USED 0
#define PNRMODE_TFT 3
#define BPPMODE_TFT 13
//for LCDCON5
#define BPP24BL 0 //32位数据表示24位颜值时,低位数据有效,高8位无效 #define INVVCLK 0 //像素值在VCLK下降沿有效
#define INVVLINE 1 //翻转HSYNC信号
#define INVVFRAME 1 //翻转VSYNC信号
#define INVVD 0 //正常VD信号极性
#define INVVDEN 0 //正常VDEN信号极性
#define PWREN 1 //使能PWREN信号
#define BSWP 0 //颜数据字节不交换
大数据日志分析#define HWSWP 0 //颜数据半字不交换
//定义显示缓存区
volatile U32 LCD_BUFFER[LCD_HEIGHT][LCD_WIDTH];
线圈电磁铁//延时程序
void delay(int a)
{
int k;
for(k=0;k<a;k++)
;
}
/
/绘制屏幕背景颜,颜为c
void Brush_Background( U32 c)
{
int x,y ;
for( x = 0 ; x < LCD_HEIGHT ; x++ )
{
for( y = 0 ; y < LCD_WIDTH ; y++ )
洗水 {
LCD_BUFFER[x][y] = c ;
}
}
}
//画实心圆,颜为c。圆心在屏幕中心,半径为20个像素
void Draw_Circular(U32 c)
{
int x,y;
int tempX,tempY;
int radius = 20;
int SquareOfR = radius*radius;
for( y = 0 ; y < LCD_HEIGHT ; y++ )
{
for( x = 0 ; x < LCD_WIDTH ; x++ )
{
if(y<=yValue && x<=xValue)
{
tempY=yValue-y;
tempX=xValue-x;
}
else if(y<=yValue&& x>=xValue)
{
tempY=yValue-y;
tempX=x-xValue;
金折网
}
else if(y>=yValue&& x<=xValue)
{
tempY=y-yValue;
tempX=xValue-x;
}
else
{
tempY = y-yValue;
tempX = x-xValue;
}
if ((tempY*tempY+tempX*tempX)<=SquareOfR)
LCD_BUFFER[y][x] = c ;
}
}
}
int main(void)
{
int i=0;
rCLKDIVN = 0x5;
while(i<10000)
i++;
//set the system function
rUPLLCON = (0x48<<12)+(0x3<<4)+0x02;
i = 0;
while(i<10)
i++;
rMPLLCON = (0x7f<<12)+(0x2<<4)+0x1;
//配置LCD相关引脚
rGPCUP = 0x00000000;
rGPCCON = 0xaaaa02a9;
rGPDUP = 0x00000000;
rGPDCON=0xaaaaaaaa; rLCDCON1=(CLKVAL_TFT<<8)|(MVAL_USED<<7)|(PNRMODE_TFT<<5)|(BPPMODE_TFT<<1)|0;
rLCDCON2=(VBPD<<24)|(LINEVAL<<14)|(VFPD<<6)|(VSPW);
rLCDCON3=(HBPD<<19)|(HOZVAL<<8)|(HFPD);
rLCDCON4=(HSPW);