📄 colorbar_subprogram.c
字号:
//---------------- lecture03_subprogram.c start---------------
#include "DMA_head.h"
unsigned short *DMA0_CONFIG = p_DMA0_CONFIG;
unsigned int *DMA0_START_ADDR = p_DMA0_START_ADDR;
unsigned short *DMA0_X_COUNT = p_DMA0_X_COUNT;
unsigned short *DMA0_Y_COUNT = p_DMA0_Y_COUNT;
unsigned short *DMA0_X_MODIFY = p_DMA0_X_MODIFY;
unsigned short *DMA0_Y_MODIFY = p_DMA0_Y_MODIFY;
unsigned short *PPI_CONTROL = 0xFFC01000;
void Fill_colorbar(unsigned char *buffer)
{
int i,j;
unsigned char *p;
p=buffer;
for(i=1;i<=3;i++) //1~3行的偶场场消隐
{
*p = 0xFF; //行消隐开始
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xF1;
p +=4;
for(j=0;j<268/2;j++)
{
*p = 0x80;
*(p+1) = 0x10;
p +=2;
}
*p = 0xFF; //行消隐结束
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xEC;
p +=4;
for(j=0;j<1440;j++)
{
*p = 0;
p++;
}
}
for(i=4;i<=20;i++) //4~20行奇场同步开始的场消隐
{
*p = 0xFF; //行消隐开始
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xB6;
p +=4;
for(j=0;j<268/2;j++)
{
*p = 0x80;
*(p+1) = 0x10;
p +=2;
}
*p = 0xFF; //行消隐结束
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xAB;
p +=4;
for(j=0;j<1440;j++)
{
*p = 0;
p++;
}
}
for(i=21;i<=263;i++) //21~263行奇场有效行开始
{
*p = 0xFF; //行消隐开始
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0x9D;
p +=4;
for(j=0;j<268/2;j++)
{
*p = 0x80;
*(p+1) = 0x10;
p +=2;
}
*p = 0xFF; //行消隐结束
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0x80;
p +=4;
for(j=0;j<45;j++) //white
{
*p = 0x80;
*(p+1) = 0xFF;
*(p+2) = 0x80;
*(p+3) = 0xFF;
p +=4;
}
for(j=0;j<45;j++) //yellow
{
*p = 0x00;
*(p+1) = 0xE1;
*(p+2) = 0x94;
*(p+3) = 0xE1;
p +=4;
}
for(j=0;j<45;j++) //cyan
{
*p = 0xAA;
*(p+1) = 0xB2;
*(p+2) = 0x00;
*(p+3) = 0xB2;
p +=4;
}
for(j=0;j<45;j++) //green
{
*p = 0x2B;
*(p+1) = 0x95;
*(p+2) = 0x15;
*(p+3) = 0x95;
p +=4;
}
for(j=0;j<45;j++) //magenta
{
*p = 0xDA;
*(p+1) = 0x69;
*(p+2) = 0xEA;
*(p+3) = 0x69;
p +=4;
}
for(j=0;j<45;j++) //red
{
*p = 0x55;
*(p+1) = 0x4C;
*(p+2) = 0xFF;
*(p+3) = 0x4C;
p +=4;
}
for(j=0;j<45;j++) //blue
{
*p = 0xFF;
*(p+1) = 0x1D;
*(p+2) = 0x6B;
*(p+3) = 0x1D;
p +=4;
}
for(j=0;j<45;j++) //black
{
*p = 0x80;
*(p+1) = 0x00;
*(p+2) = 0x80;
*(p+3) = 0x00;
p +=4;
}
}
for(i=264;i<=265;i++) //264~265行的奇场场消隐
{
*p = 0xFF; //行消隐开始
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xB6;
p +=4;
for(j=0;j<268/2;j++)
{
*p = 0x80;
*(p+1) = 0x10;
p +=2;
}
*p = 0xFF; //行消隐结束
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xAB;
p +=4;
for(j=0;j<1440;j++)
{
*p = 0;
p++;
}
}
for(i=266;i<=282;i++) //266~282行偶场同步开始的场消隐
{
*p = 0xFF; //行消隐开始
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xF1;
p +=4;
for(j=0;j<268/2;j++)
{
*p = 0x80;
*(p+1) = 0x10;
p +=2;
}
*p = 0xFF; //行消隐结束
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xEC;
p +=4;
for(j=0;j<1440;j++)
{
*p = 0;
p++;
}
}
for(i=283;i<=525;i++) //283~525行奇场有效行开始
{
*p = 0xFF; //行消隐开始
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xDA;
p +=4;
for(j=0;j<268/2;j++)
{
*p = 0x80;
*(p+1) = 0x10;
p +=2;
}
*p = 0xFF; //行消隐结束
*(p+1) = 0x00;
*(p+2) = 0x00;
*(p+3) = 0xC7;
p +=4;
for(j=0;j<45;j++) //white
{
*p = 0x80;
*(p+1) = 0xFF;
*(p+2) = 0x80;
*(p+3) = 0xFF;
p +=4;
}
for(j=0;j<45;j++) //yellow
{
*p = 0x00;
*(p+1) = 0xE1;
*(p+2) = 0x94;
*(p+3) = 0xE1;
p +=4;
}
for(j=0;j<45;j++) //cyan
{
*p = 0xAA;
*(p+1) = 0xB2;
*(p+2) = 0x00;
*(p+3) = 0xB2;
p +=4;
}
for(j=0;j<45;j++) //green
{
*p = 0x2B;
*(p+1) = 0x95;
*(p+2) = 0x15;
*(p+3) = 0x95;
p +=4;
}
for(j=0;j<45;j++) //magenta
{
*p = 0xDA;
*(p+1) = 0x69;
*(p+2) = 0xEA;
*(p+3) = 0x69;
p +=4;
}
for(j=0;j<45;j++) //red
{
*p = 0x55;
*(p+1) = 0x4C;
*(p+2) = 0xFF;
*(p+3) = 0x4C;
p +=4;
}
for(j=0;j<45;j++) //blue
{
*p = 0xFF;
*(p+1) = 0x1D;
*(p+2) = 0x6B;
*(p+3) = 0x1D;
p +=4;
}
for(j=0;j<45;j++) //black
{
*p = 0x80;
*(p+1) = 0x00;
*(p+2) = 0x80;
*(p+3) = 0x00;
p +=4;
}
}
}
DMA_init(Image_422_1716x525)
{
*DMA0_CONFIG = 0x1010;
*DMA0_START_ADDR = Image_422_1716x525;
*DMA0_X_COUNT = 1716;
*DMA0_Y_COUNT = 525;
*DMA0_X_MODIFY = 1;
*DMA0_Y_MODIFY = 1;
}
PPI_init()
{
*PPI_CONTROL = 0x0002;
}
DMA_enable()
{
*DMA0_CONFIG |= 0x0001;
}
PPI_enable()
{
*PPI_CONTROL = 0x0003;
}
//---------------- lecture03_subprogram.c end---------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -