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

📄 lib_22eb06_mc.c

📁 使用embest IDE开发工具开发的基于LPC2294 的触摸屏开发
💻 C
📖 第 1 页 / 共 2 页
字号:

/*
***********************************************************************

       Embest Info&Tech Co., Ltd.  All rights reserved.
                     www.embedinfo.com

***********************************************************************

---------------- file information -------------------------------------

file name: 22eb06_lib_modulecontrol.c
version  : v0
author   : peter pan / panqan@hotmail.com
                       panqian@embedinfo.com
begin    : 2006-02-10
finish   : 2006-02-10
define   : lpc22eb06 module control to enable or disable the module

notes    :

---------------- modify information -----------------------------------
version  :
modify   :
begin    :
finish   :
define   :
-----------------------------------------------------------------------
*/


// (--------------------- compiler condition --------------------------

/*
#ifdef  xxx
        #define  xxx
#endif
*/

// --------------------- compiler condition --------------------------)



/*-------------------------------------------------------------------*/
/*                       include files                               */
/*---------------------------------------------------------------- --*/
#include    "lib_22eb06_mc.h"



/*-------------------------------------------------------------------*/
/*                       variable define                             */
/*-------------------------------------------------------------------*/

/*
INT32U      XXXXXX;
*/



/*-------------------------------------------------------------------*/
/*                       extern function declare                     */
/*-------------------------------------------------------------------*/

/*--- define in XXX.c ---
extern  void    XXX();
*/


/*-------------------------------------------------------------------*/
/*                       extern variable declare                     */
/*-------------------------------------------------------------------*/

/*--- USED in XXX() ---
XXX SSS; // used inXXX()
*/

/*-------------------------------------------------------------------*/
/*                       function code                               */
/*-------------------------------------------------------------------*/


// 88 control
//(--------------------------------------------------------------------
/**********************************************************************
* name  :    display88_latch
* func  :    latch the spi send to 595 data used p2.19

* para  :    LATCH_EN
	         1: latch the send data
	         0: off the latch

* ret   :    xxxx

* glob  :    xxxx
* inc   :

* author:
* date  :

* modify:
* comment:
**********************************************************************/
INT32U display88_latch(display88_control LATCH_ENDIS)
       {
       	INT32U i,j;

       	if (display88_latchen==LATCH_ENDIS)
       	   {
           //link to gpio p2.19
           i = PINSEL2;
           i &= (~P2__16_31__GPIO_PINSEL2_MASK);
           i |= P2__16_31__GPIO_PINSEL2_VALUE;
           PINSEL2 = i;

           //set value 0
           i = IOCLR2;
           i |= GPIO2_19__88latch_IOXXX_VALUE;
           IOCLR2 = i;

           //set gpio p2.19 output
           i = IODIR2;
           i &= (~GPIO2_19__88latch_IOXXX_MASK);
           i |= GPIO2_19__88latch_IOXXX_VALUE;
           IODIR2 = i;

           //set value 0
           i = IOCLR2;
           i |= GPIO2_19__88latch_IOXXX_VALUE;
           IOCLR2 = i;

           //set value 1
           i = IOSET2;
           i |= GPIO2_19__88latch_IOXXX_VALUE;
           IOSET2 = i;

           //set value 0
           i = IOCLR2;
           i |= GPIO2_19__88latch_IOXXX_VALUE;
           IOCLR2 = i;

       	   }
       	else
           {
           //link to gpio p2.19
           i = PINSEL2;
           i &= (~P2__16_31__GPIO_PINSEL2_MASK);
           i |= P2__16_31__GPIO_PINSEL2_VALUE;
           PINSEL2 = i;

           //set gpio p2.19 input
           i = IODIR2;
           i &= (~GPIO2_19__88latch_IOXXX_MASK);
           IODIR2 = i;
           }

       }


/**********************************************************************
* name  :    display88_outputen
* func  :    enable the display88 outputen

* para  :    OUTPUTEN
	         1: EN output
	         0: off output
* ret   :    xxxx

* glob  :    xxxx
* inc   :

* author:
* date  :

* modify:
* comment:
**********************************************************************/
INT32U display88_outputen(display88_control OUTPUTENDIS)
       {
       	INT32U i,j;

       	if (display88_outen==OUTPUTENDIS)
       	   {
           //link to gpio p2.18
           i = PINSEL2;
           i &= (~P2__16_31__GPIO_PINSEL2_MASK);
           i |= P2__16_31__GPIO_PINSEL2_VALUE;
           PINSEL2 = i;

           //set gpio p2.18 output
           i = IODIR2;
           i &= (~GPIO2_18__88EN_IOXXX_MASK);
           i |= GPIO2_18__88EN_IOXXX_VALUE;
           IODIR2 = i;

           //set value 0
           i = IOCLR2;
           i |= GPIO2_18__88EN_IOXXX_MASK;
          // i &= (~GPIO2_18__88EN_IOXXX_MASK);
           IOCLR2 = i;
       	   }

       	else
           {
           //link to gpio p2.18
           i = PINSEL2;
           i &= (~P2__16_31__GPIO_PINSEL2_MASK);
           i |= P2__16_31__GPIO_PINSEL2_VALUE;
           PINSEL2 = i;

           //set gpio p2.18 input
           i = IODIR2;
           i &= (~GPIO2_18__88EN_IOXXX_MASK);
           IODIR2 = i;

           }

       }


/**********************************************************************
* name  :    display88
* func  :    do a minute cycle to display the data on module88

* para  :    display88_data
	         display_cycle: 

* ret   :    xxxx

* glob  :    xxxx
* inc   :

* author:
* date  :

* modify:
* comment:
**********************************************************************/

INT32U display88(INT32U display_88_data, INT32U display_cycle)
       {
        INT32U i,j,k;

//      INT32U display_88_data=0;
        INT32U data_bit=1;
        INT32U data_bit_d;
        INT32U data_bit_value=0;
        INT32U data_bit_value_d;
        INT32U data_divisor=1;
        INT32U data_10_n;
      
        i=1;
        for (;i<display_cycle;i++)
            {
                data_bit=1;
                for (;data_bit<9;data_bit++)
                    {

                     switch (data_bit)
                            {
                             case 1:
                                     data_10_n    = 10;
                                     data_divisor = 1;
                                     data_bit_d = 0xEF; //b11101111
                                     break;
                             case 2:
                                     data_10_n    = 100;
                                     data_divisor = 10;
                                     data_bit_d = 0xDF; //b11011111
                                     break;
                             case 3:
                                     data_10_n    = 1000;
                                     data_divisor = 100;
                                     data_bit_d = 0xBF; //b10111111
                                     break;
                             case 4:
                                     data_10_n    = 10000;
                                     data_divisor = 1000;
                                     data_bit_d = 0x7F; //B01111111
                                     break;
                             case 5:
                                     data_10_n    = 100000;
                                     data_divisor = 10000;
                                     data_bit_d = 0xFE; //b11111110
                                     break;
                             case 6:
                                     data_10_n    = 1000000;
                                     data_divisor = 100000;
                                     data_bit_d = 0xFD; //b11111101
                                     break;
                             case 7:
                                     data_10_n    = 10000000;
                                     data_divisor = 1000000;
                                     data_bit_d = 0xFB; //b11111011
                                     break;
                             case 8:
                                     data_10_n    = 100000000;
                                     data_divisor = 10000000;
                                     data_bit_d = 0xF7; //b11110111
                                     break;
                            default:
                                     break;
                             };

                     data_bit_value = (display_88_data % data_10_n) / data_divisor;
                     switch (data_bit_value)
                            {
                             case 0:
                                     data_bit_value_d = D88_0;
                                     break;
                             case 1:
                                     data_bit_value_d = D88_1;
                                     break;
                             case 2:
                                     data_bit_value_d = D88_2;
                                     break;
                             case 3:
                                     data_bit_value_d = D88_3;
                                     break;
                             case 4:
                                     data_bit_value_d = D88_4;
                                     break;

 
                             case 5:
                                     data_bit_value_d = D88_5;
                                     break;
                             case 6:
                                     data_bit_value_d = D88_6;
                                     break;
                             case 7:
                                     data_bit_value_d = D88_7;
                          			 break;
                  			 case 8:
            			             data_bit_value_d = D88_8;
                         			 break;
                 			 case 9:
                          			 data_bit_value_d = D88_9;
                          	         break;
                            default:
                                     break;
                            };
                     //send the data to 88 bit?/enbit?
                     spi_data_send(spi_c0, data_bit_d);
                     spi_data_send(spi_c0, data_bit_value_d);
                     //latch 88
                     display88_latch(display88_latchen);
                     //EN 88
                     display88_outputen(display88_outen);
                     //time_dly(1);
                    }
                for (j=0;j<40;j++);
                display88_outputen(display88_outdis);
            }
       }

//--------------------------------------------------------------------)



// SPI extend module control
//(--------------------------------------------------------------------
/**********************************************************************
* name  :    spi_extend_latch
* func  :    latch the spi send to 595 data used p2.16

* para  :    LATCH_EN
	         1: latch the send data
	         0: off the latch

* ret   :    xxxx

* glob  :    xxxx
* inc   :

* author:
* date  :

* modify:
* comment:
**********************************************************************/
INT32U spi_extend_latch(ext_device_control latch_endis)
       {
       	INT32U i,j;

       	if (ext_device_all_latchen==latch_endis)
       	   {
           //link to gpio p2.16
           i = PINSEL2;
           i &= (~P2__16_31__GPIO_PINSEL2_MASK);
           i |= P2__16_31__GPIO_PINSEL2_VALUE;
           PINSEL2 = i;

           //set value 0
           i = IOCLR2;
           i |= GPIO2_16__ext_latch_IOxxx_V;
           IOCLR2 = i;

           //set gpio p2.16 output
           i = IODIR2;
           i &= (~GPIO2_16__ext_latch_IOxxx_M);
           i |= GPIO2_16__ext_latch_IOxxx_V;
           IODIR2 = i;

           //set value 0
           i = IOCLR2;
           i |= GPIO2_16__ext_latch_IOxxx_M;
           IOCLR2 = i;

           //set value 1
           i = IOSET2;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -