📄 ili9320_430_p1.c
字号:
WriteDAT(0xff,0xff);
WriteDAT(0x00,0x00);
}
for (j=0;j<120;j++)
{
WriteDAT(0x00,0x00);
WriteDAT(0xff,0xff);
}
}
}
void Pattern7() //All on
{
unsigned int i,j;
WriteRegister(0x4200);
WriteRegister(0x4300);
WriteRegister(0x4400);
for(i=0;i<320;i++)
{
for (j=0;j<240;j++)
{
WriteDAT(0xff,0xff);
}
}
}
void Pattern9()
{
unsigned int i,j;
addr();
for(i=0;i<320;i++)
{
for (j=0;j<40;j++)
WriteDAT(0xf8,0x00);//R
for (j=0;j<40;j++)
WriteDAT(0x07,0xe0);//G
for (j=0;j<40;j++)
WriteDAT(0x00,0x1f);//B
for (j=0;j<40;j++)
WriteDAT(0xff,0xe0);//RG
for (j=0;j<40;j++)
WriteDAT(0xf8,0x1f);//RB
for (j=0;j<40;j++)
WriteDAT(0x07,0xff);//GB
}
}
void delayms(int count) // X10ms
{
int i,j;
for(i=0;i<count;i++)
for(j=0;j<500;j++);
}
//////////////////////////////////////////////////////////////////////
// 纵向取模 字节正序
// 横屏显示 220(X)×176(Y)
// 在指定起始位置显示41×80点阵ASC字符
// startx,starty开始位置
// uchar *p 为字库中的起始位置
// color为字符颜色, color_b为字符背景颜色
/////////////////////////////////////////////////////////////////////
void dis_asc_8_16(uchar startx,uchar starty,uchar *p,uint color,uint color_b)
{
unsigned char a,b,c,aa,bb,ff,k;
a = color >> 8 ;
b = color & 0xff ;
aa = color_b >> 8 ;
bb = color_b & 0xff ;
dis_area(startx,startx+7,starty,starty+15);
for(ff=0;ff<16;ff++) //16 行
{
c = p[ff];
for(k=0;k<8;k++) //每字节 8 位
{
if((c & BIT7 ) == BIT7 )
WriteDAT(a,b);
else
WriteDAT(aa,bb);
c = c << 1 ;
}
}
}
//////////////////////////////////////////////////////////////////////
// 纵向取模 字节正序
// 横屏显示 220(X)×176(Y)
// 在指定起始位置显示41×80点阵ASC字符
// startx,starty开始位置
// uchar *p 为字库中的起始位置
// color为字符颜色, color_b为字符背景颜色
/////////////////////////////////////////////////////////////////////
void dis_asc_16_32(uchar startx,uchar starty,uchar *p,uint color,uint color_b)
{
unsigned char a,b,c,aa,bb,ff,k;
a = color >> 8 ;
b = color & 0xff ;
aa = color_b >> 8 ;
bb = color_b & 0xff ;
dis_area(startx,startx+7,starty,starty+15);
for(ff=0;ff<16;ff++) //16 行
{
c = p[ff];
for(k=0;k<8;k++) //每字节 8 位
{
if((c & BIT7 ) == BIT7 )
WriteDAT(a,b);
else
WriteDAT(aa,bb);
c = c << 1 ;
}
}
}
//////////////////////////////////////////////////////////////////////
// 纵向取模 字节正序
// 横屏显示 220(X)×176(Y)
// 在指定起始位置显示41×80点阵ASC字符
// startx,starty开始位置
// uchar *p 为字库中的起始位置
// color为字符颜色, color_b为字符背景颜色
/////////////////////////////////////////////////////////////////////
void dis_hz_16_16(uint startx,uint starty,uchar *p,uint color,uint color_b)
{
unsigned char a,b,c,aa,bb,ff,k,j;
a = color >> 8 ;
b = color & 0xff ;
aa = color_b >> 8 ;
bb = color_b & 0xff ;
dis_area(startx,startx+15,starty,starty+15);
for(ff=0;ff<16;ff++) //16 行
{
for(j=0;j<2;j++)
{
c = p[(ff<<1)+j];
for(k=0;k<8;k++) //每字节 8 位
{
if((c & BIT7 ) == BIT7 )
WriteDAT(a,b);
else
WriteDAT(aa,bb);
c = c << 1 ;
}
}
}
}
void Pattern77(uint x,uint y) // Display All Red
{
unsigned int i;
dis_area(x,x+7,y,y+15);
for(i=0;i<16*8;i++)
WriteDAT(0xf8,0x00);
}
//////////////////////////////////////////////////////////////////////
// 在指定位置打点
// x的长度(0-240-startx),y的长度(0-320-starty)
// color为颜色
/////////////////////////////////////////////////////////////////////
void dot_9320(uint x,uint y,uint color)
{
dis_area(x,x,y,y);
WriteDAT(color>>8,color&0x0ff);
}
//////////////////////////////////////////////////////////////////////
// 在指定范围显示指定的颜色光带
// startx,starty开始位置
// lengx为x的长度(0-220-startx),lengy为y的长度(0-176-starty)
// color为颜色
/////////////////////////////////////////////////////////////////////
void dis_guangdai(uchar startx,uchar starty,uchar lengx,uchar lengy,uint color) //Display All Green
{
unsigned char i,j,a,b;
a = color >> 8 ;
b = color & 0xff ;
dis_area(startx,startx+lengx,starty,starty+lengy);
for(i=0;i<lengx;i++)
{
for (j=0;j<lengy;j++)
WriteDAT(a,b);
}
}
void dis_pic(uchar startx,uchar starty,uchar lengx,uchar lengy,uchar *p) //Display All Green
{
unsigned int i,j ;
dis_area( startx, startx+lengx-1, starty, starty+lengy-1 );
for( i=0 ; i< lengy; i++ )
{
for (j=0; j<lengx; j++ )
{
WriteDAT(pic_pp[i*lengx*2+j*2] , pic_pp[i*lengx*2+j*2+1]);
}
}
}
main()
{
uint i;
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 &= ~XT2OFF; // XT2on
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?
BCSCTL2 |= SELM_2 + SELS; // MCLK = SMCLK = XT2 (safe)
P3DIR = 0XFF;
P4DIR = 0XFF;
P5DIR = 0XFF;
P1DIR |= BIT7 ;
P1OUT |= BIT7 ;
P3OUT |= BIT3;
delayms(20);
P3OUT &= ~BIT3;
delayms(10);
P3OUT |= BIT3;
delayms(20);
ILI9320_CMO22_Initial();
Pattern9();
for(i=0;i<91;i++)
dis_asc_8_16((i%30)<<3,(i/30)<<4,(uchar *)(asc_8_16+16*i),0x07e0,0x001f);
for(i=0;i<20;i++)
dis_hz_16_16((i%15)<<4,60+((i/15)<<4),(uchar *)(ziku+32*i),0x07e0,0x001f);
dis_pic(16*5,48,80,96,(uchar *)pic_pp);
TI_CC_SPISetup(); // Initialize SPI port
TI_CC_PowerupResetCCxxxx(); // Reset CCxxxx
writeRFSettings(); // Write RF settings to config reg
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//Write PATABLE
TI_CC_GDO0_PxIES |= TI_CC_GDO0_PIN; // Int on falling edge (end of pkt)
TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN; // Clear flag
TI_CC_GDO0_PxIE |= TI_CC_GDO0_PIN; // Enable int on end of packet
P6OUT |= BIT4 ;
// TI_CC_SPIStrobe(TI_CCxxx0_SPWD); // Initialize CCxxxx in RX mode.
TI_CC_SPIStrobe(TI_CCxxx0_SRX); // Initialize CCxxxx in RX mode.
_BIS_SR(LPM3_bits + GIE);
uchar f = 0 ;
while(1)
{
for(i=0;i<90;i++)
dis_hz_16_16((i%15)<<4,48+((i/15)<<4),(uchar *)(ziku+32*i),0x07e0,0x001f);
dis_pic(16*f,48,80,96,(uchar *)pic_pp);
f ++ ;
if(f >= 11)
f = 0 ;
for(i=0;i<6;i++)
delay(30000);
;
}
}
uchar rx_temp[12] = {0};
uchar rx_cc = 0 ;
#pragma vector=PORT2_VECTOR
__interrupt void port2_ISR (void)
{
char len= 5 ;
char i ,j ;
uint dc_adc1 ;
if(P2IFG & BIT4)
{
if (RFReceivePacket(rxBuffer,&len))
;
rx_cc ++ ;
if(rx_cc >= 4 )
rx_cc = 0 ;
for(i=0;i<3;i++)
rx_temp[3*rx_cc + i] = rxBuffer[1+i] ;
for(i=0;i<4;i++)
{
dc_adc1 = rx_temp[i*3+1] ;
dc_adc1 = dc_adc1 << 8 ;
dc_adc1 = dc_adc1 + rx_temp[i*3+2] ;
dis_asc_8_16( 1<<3, (60+i)<<4,(uchar *)(asc_8_16+16*(15+rx_temp[i*3])),0x07e0,0x001f);
dis_asc_8_16( 2<<3, (60+0)<<4,(uchar *)(asc_8_16+16*0),0x07e0,0x001f);
dis_asc_8_16( 2<<3, (60+1)<<4,(uchar *)(asc_8_16+16*0),0x07e0,0x001f);
dis_asc_8_16( 2<<3, (60+2)<<4,(uchar *)(asc_8_16+16*0),0x07e0,0x001f);
dis_asc_8_16( 2<<3, (60+3)<<4,(uchar *)(asc_8_16+16*0),0x07e0,0x001f);
dis_asc_8_16( 2<<3, (60+rx_cc)<<4,(uchar *)(asc_8_16+16*27),0x07e0,0x001f);
for(j=0;j<5;j++)
{
dis_asc_8_16((8 - j)<<3, (i+60)<<4, (uchar *)(asc_8_16+16*((dc_adc1%10)+15)) , 0x07e0,0x001f);
dc_adc1 = dc_adc1 / 10 ;
}
}
P2IFG &= ~TI_CC_GDO0_PIN; // Clear flag
P2IFG = 0 ;
}
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
CCR0 += 65535 ;
time_con ++ ;
TI_CC_SPISetup(); // Initialize SPI port
TI_CC_PowerupResetCCxxxx(); // Reset CCxxxx
writeRFSettings(); // Write RF settings to config reg
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//Write PATABLE
TI_CC_GDO0_PxIES |= TI_CC_GDO0_PIN; // Int on falling edge (end of pkt)
TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN; // Clear flag
TI_CC_GDO0_PxIE |= TI_CC_GDO0_PIN; // Enable int on end of packet
P6OUT |= BIT4 ;
// TI_CC_SPIStrobe(TI_CCxxx0_SPWD); // Initialize CCxxxx in RX mode.
TI_CC_SPIStrobe(TI_CCxxx0_SRX); // Initialize CCxxxx in RX mode.
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -