⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ili9320_430_p1.c

📁 cc2500无线传感与msp430的接口代码
💻 C
📖 第 1 页 / 共 2 页
字号:
			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 + -