Exemplo n.º 1
0
int main( void )
{
    GOL_MSG msg;                                    // GOL message structure to interact with GOL

    RGBMapColorPins();

    TRISBbits.TRISB1 = 0; // Debug
    LATBbits.LATB1   = 0;

    #ifdef USE_FRC
        OSCCON = 0x1102;    // Enable secondary oscillator, use FRC oscillator
        CLKDIV = 0x0000;    // FRC post-scaler (1:1), USB postscaler (1:1), CPU postscaler (1:1)
    #else
        #ifdef GO_SLOW
            OSCCON = 0x3302;    // Enable secondary oscillator, use HS oscillator
            CLKDIV = 0x0080;    // (not needed - FRC post-scaler (1:1)), USB postscaler (4:1), CPU postscaler (1:1)
        #else
            OSCCON = 0x3302;    // Enable secondary oscillator, use HS oscillator
            CLKDIV = 0x0000;    // (not needed - FRC post-scaler (1:1)), USB postscaler (1:1), CPU postscaler (1:1)
        #endif
    #endif
    RCON = 0;

    // Initialize USB Embedded Host
    USBInitialize( 0 );

    // Initialize the RTCC
    RTCCInit();

    // Initialize the graphics library
    GOLInit();

    // Initialize the touch pads.
    CTMUInit();

    // Initialize the reference timer.
    TickInit();


    while (1)
    {
        if (GOLDraw())                          // Draw the screen
        {
            TouchSenseButtonsMsg( &msg );       // Get a raw touchpad message
            if ((msg.uiEvent != EVENT_INVALID) && ((tick - displayChangeTime) > MESSAGE_DEAD_TIME))
            {
                TranslateTouchpad( &msg );      // Translate the raw message
                GOLMsg( &msg );                 // Process the message
            }
        }
    }
}
Exemplo n.º 2
0
int main(void)
{
 unsigned char jloop;
 unsigned int iloop;

 char AddrString[30];
 char ConstString[256];

 InitializeSystem();

 unsigned char   temp, temp1, temp2, temp3, temp4;
 unsigned char   ones_char, tens_char, huns_char;
 int16_t   change_cnt;

     ODCAbits.ODA6 		= 0;  	// This is for the Explorer-16 Demo Board
     TRISAbits.TRISA6 	= 0;		// This is for the Explorer-16 Demo Board
 //  ODCCbits.ODC2 		= 0;
 //  TRISCbits.TRISC2 	= 0;

 unsigned long i;

 	GreenLEDState = 0;
 	RedLEDState = 0;

        RTCCInit();		// initialization includes set the time and date

        TimeMinBinary = 0;
 	while (TimeMinBinary < 3)
        {
	if (TenSecondTick == 1)
	{
        RTCCgrab();
        TimeHourBinary = mRTCCDec2Bin(TimeHourBCD);
        TimeMinBinary = mRTCCDec2Bin(TimeMinBCD);
        TimeSecBinary = mRTCCDec2Bin(TimeSecBCD);
        TimeDayOfWeekBinary = mRTCCDec2Bin(TimeDayOfWeekBCD);
        TimeDayBinary = mRTCCDec2Bin(TimeDayBCD);
        TimeMonthBinary = mRTCCDec2Bin(TimeMonthBCD);
        TimeYearBinary = mRTCCDec2Bin(TimeYearBCD);


    sprintf(OutString, "  :  :          \n  /  /   20     ");  // columns 41, 59
//  sprintf(OutString, "Sept4 1:00PM    \nputs only       ");  // columns 41, 59
    temp1 = (TimeHourBinary  % 10);
    ones_char = temp1 + 0x30;
    temp2 = (TimeHourBinary - temp1)/10;
    tens_char = temp2 + 0x30;
    OutString[0] = tens_char;
    OutString[1] = ones_char;

    temp1 = (TimeMinBinary  % 10);
    ones_char = temp1 + 0x30;
    temp2 = (TimeMinBinary - temp1)/10;
    tens_char = temp2 + 0x30;
    OutString[3] = tens_char;
    OutString[4] = ones_char;

    temp1 = (TimeSecBinary  % 10);
    ones_char = temp1 + 0x30;
    temp2 = (TimeSecBinary - temp1)/10;
    tens_char = temp2 + 0x30;
    OutString[6] = tens_char;
    OutString[7] = ones_char;

    temp1 = (TimeDayOfWeekBinary  % 10);
    ones_char = temp1 + 0x30;
    temp2 = (TimeDayOfWeekBinary - temp1)/10;
    tens_char = temp2 + 0x30;
    OutString[17] = tens_char;
    OutString[18] = ones_char;

    temp1 = (TimeDayBinary  % 10);
    ones_char = temp1 + 0x30;
    temp2 = (TimeDayBinary - temp1)/10;
    tens_char = temp2 + 0x30;
    OutString[20] = tens_char;
    OutString[21] = ones_char;

    temp1 = (TimeMonthBinary  % 10);
    ones_char = temp1 + 0x30;
    temp2 = (TimeMonthBinary - temp1)/10;
    tens_char = temp2 + 0x30;
    OutString[23] = tens_char;
    OutString[24] = ones_char;

    temp1 = (TimeYearBinary  % 10);
    ones_char = temp1 + 0x30;
    temp2 = (TimeYearBinary - temp1)/10;
    tens_char = temp2 + 0x30;
    OutString[28] = tens_char;
    OutString[29] = ones_char;

    Delayms(200);
    setLCDC(0x00); // point to 1st line
    Delayms(2000);
    putsLCD(OutString);
    TenSecondTick = 0;
} // if (TenSecondTick == 1)
} // while(TimeMinBinary < 4)

    sprintf(OutString, "WiFly Pass_thru\nDemo");
    putsLCD(OutString);
    // JKW starts here
  Delayms(5000);
    sprintf(OutString,"$$$");
    putsWiFly(OutString);
    putsConsole(OutString);
  Delayms(5000);
    sprintf(OutString,"set comm open [\r\n");
    putsConsole(OutString);
    putsWiFly(OutString);
  Delayms(1000);
//  sprintf(OutString,"set wlan ssid AMI\r\n");
//  sprintf(OutString,"set wlan ssid Arthur$and$Matts$Internet\r\n");
    sprintf(OutString,"set wlan ssid Hogwarts\r\n");
    putsConsole(OutString);
    putsWiFly(OutString);
  Delayms(1000);
//    sprintf(OutString,"set wlan phrase hot7blue\r\n");
    sprintf(OutString,"set wlan phrase pooKums496\r\n");
    putsConsole(OutString);
    putsWiFly(OutString);
  Delayms(1000);
    sprintf(OutString,"set ftp timer 80\r\n");
    putsConsole(OutString);
    putsWiFly(OutString);
  Delayms(1000);
    sprintf(OutString,"set comm close ]\r\n");
    putsConsole(OutString);
    putsWiFly(OutString);
  Delayms(1000);
    sprintf(OutString,"set ftp dir /jackwaterman\r\n");
    putsConsole(OutString);
    putsWiFly(OutString);
  Delayms(1000);
    sprintf(OutString,"set ftp user waterallusers\r\n");
    putsConsole(OutString);
    putsWiFly(OutString);
  Delayms(1000);
    sprintf(OutString,"set ftp pass aRkeO7755123!\r\n");
    putsConsole(OutString);
    putsWiFly(OutString);
//User=jaycen     is now waterallusers
//Pass=jWes232740 is now aRkeO7755123!
//Dir=../../      is now /jackwaterman
    Delayms(1000);
    sprintf(OutString,"save\r\n");
    putsConsole(OutString);
    putsWiFly(OutString);
//  Delayms(1000);
//    sprintf(OutString,"get everything\r\n");
//    putsConsole(OutString);
//    putsWiFly(OutString);
  Delayms(200);
    sprintf(OutString, "Sept7 8:00AM    \nputs only       ");  // columns 41, 59
    putsConsole(OutString);
  Delayms(200);
   setLCDC(0x00); // point to 1st line
  Delayms(200);
    putsLCD(OutString);
  Delayms(2000);
    sprintf(OutString, "\r\n");
    putsConsole(OutString);

  change_cnt = 0;
//  sprintf(ConstString,"A9ABE296E34713800CC11D0D1E0FB197B36810D14F32085E4E50BFB685EC755E26C88F63A105284B0AC627FA90EF3B294D6D549C0A0D88E814B5A2C17794B1EBD1A064868BB377DFD5CD80218D73D3F0A18B642EFAFACEDDBA6E2694D27F3E7EE3B04A57D6CBBE452343D9428133C5209D763B2F776628529B94173B3568");  // 1009


  for (iloop = 0; iloop <=999; iloop++)
    {
  Delayms(500);  // worked well with 5000
    sprintf(AddrString,"ftp put sept9__000.txt\r\n");
//  sprintf(AddrString,"ftp put arthur_000.txt\r\n");
    temp1 = (iloop  % 10);
    ones_char = temp1 + 0x30;
    temp2 = ((iloop - temp1) % 100)/10;
    tens_char = temp2 + 0x30;
    temp3 = (iloop - temp2*10 - temp1)/100;
    huns_char = temp3 + 0x30;
    AddrString[15] = huns_char;
    AddrString[16] = tens_char;
    AddrString[17] = ones_char;
  Delayms(500);  // worked well with 5000
    putsConsole(AddrString);
  Delayms(500);
    putsWiFly(AddrString);

  sprintf(ConstString,"A9ABE296E34713800CC11D0D1E0FB197B36810D14F32085E4E50BFB685EC755E26C88F63A105284B0AC627FA90EF3B294D6D549C0A0D88E814B5A2C17794B1EBD1A064868BB377DFD5CD80218D73D3F0A18B642EFAFACEDDBA6E2694D27F3E7EE3B04A57D6CBBE452343D9428133C5209D763B2F776628529B94173B3568");  // 1009
  temp4 = ConstString[change_cnt] - 0x01;
  if (temp4 < 0x30)
    {
		temp4 = 0x30;
		change_cnt++;
		if (change_cnt == 251) {change_cnt = 0;}
      temp4 = ConstString[change_cnt] - 0x01;
	}
  if ((temp4 < 0x41) && (temp4 > 0x39)) temp4 = 0x39;
  ConstString[change_cnt] = temp4;
  change_cnt++;
  if (change_cnt == 251) {change_cnt = 0;}

    temp = 0x00;
    kickout_seconds = 0;  // kicks out if takes longer than 2 minutes
    RTCCgrab();
    TimeHourBinary = mRTCCDec2Bin(TimeHourBCD);
    TimeMinBinary = mRTCCDec2Bin(TimeMinBCD);
    TimeSecBinary = mRTCCDec2Bin(TimeSecBCD);
    time_mark1 = TimeHourBinary*3600 + TimeMinBinary*60+ TimeSecBinary;
    TimeHourBinarySave = TimeHourBinary;

    while ( (U1RXREG != '1') && (kickout_seconds < 60) )  // [ = 0x5B, ] = 0x5D
    {
        putConsole(U1RXREG);
    	RTCCgrab();
    	TimeHourBinary = mRTCCDec2Bin(TimeHourBCD);
    	TimeMinBinary = mRTCCDec2Bin(TimeMinBCD);
    	TimeSecBinary = mRTCCDec2Bin(TimeSecBCD);
    	time_mark2 = TimeHourBinary*3600 + TimeMinBinary*60+ TimeSecBinary;
    	if (TimeHourBinary < TimeHourBinarySave) time_mark2 = time_mark2 + 24*3600;
    	kickout_seconds = time_mark2 - time_mark1;
        Delayms(200);
    }
    if (kickout_seconds < 60)
    {
    putsConsole(ConstString);
  Delayms(500);
    putsWiFly(ConstString);
//  Delayms(7000);  // works OK when ftp_timeout = 40, 1 every 12 sec
//  Delayms(21000);// works OK when ftp_timeout = 40, 1 every 24 sec
  Delayms(12000);  // works OK when ftp_timeout = 40, 1 every 16 sec
    }
  sprintf(ConstString,"$$$");
    putsConsole(ConstString);
  Delayms(500);
    putsWiFly(ConstString);
  Delayms(500);


  setLCDC(0x00); // point to 1st line
  Delayms(200);
    sprintf(OutString, "iloop =         \nLoop to 1000    ");
    temp1 = (iloop  % 10);
    ones_char = temp1 + 0x30;
//    temp2 = (iloop - temp1)/10;
    temp2 = ((iloop - temp1) % 100)/10;
    tens_char = temp2 + 0x30;
    temp3 = (iloop - temp2*10 - temp1)/100;
    huns_char = temp3 + 0x30;
    OutString[8] = huns_char;
    OutString[9] = tens_char;
    OutString[10] = ones_char;
    putsLCD(OutString);

  Delayms(1000);  // worked well with 10000
    }

// JKW ends here

    while(1)
    {
        // check if S4 pressed to trigger WiFly factory restoral
        if(0 == SwitchLevel(&SW_S4_PORT, SW_S4_PIN, SWITCH_DEBOUNCE_MS))
        {
            sprintf(OutString,"\r\n\r\ninitiating WiFly factory reset...\r\n\r\n");
            putsConsole(OutString);
            // drive GPIO9 high for 10ms before resetting the module
            RN_GPIO9 = 1;
            Delayms(1000);
            // Assert RESET for 10ms
            RN_RESET = 0;
            Delayms(100);
            RN_RESET = 1;
            Delayms(100);
            // toggle GPIO9 5 times, delaying at least 1 sec between toggles
            RN_GPIO9 = 0;
            Delayms(1200);
            RN_GPIO9 = 1;
            Delayms(1200);

            RN_GPIO9 = 0;
            Delayms(1200);
            RN_GPIO9 = 1;
            Delayms(1200);

            RN_GPIO9 = 0;
            Delayms(1200);
            RN_GPIO9 = 1;
            Delayms(1200);

            RN_GPIO9 = 0;
            Delayms(1200);
            RN_GPIO9 = 1;
            Delayms(1200);

            RN_GPIO9 = 0;
            Delayms(1200);

            // now toggle RESET to reboot the module and apply factory default settings
            RN_RESET = 0;
            Delayms(100);
            RN_RESET = 1;
            // wait for user to release S4
            while(0 == SwitchLevel(&SW_S4_PORT, SW_S4_PIN, SWITCH_DEBOUNCE_MS));
        }
    }

} // main
Exemplo n.º 3
0
/************************************************************************
 Function: void InitializeGUI(void)

 Overview: This function initializes sub modules used in the GUI.

 Input: none.

 Output: none
************************************************************************/
void InitializeGUI(void)
{

    // initialize the real time clock
    RTCCInit();
    RTCCProcessEvents();

    //make sure the strings are terminated
    _time_str[13] = 0;
    _date_str[13] = 0;
    CurrentTimeStr[13] = 0;

    // create and initialize style schemes

    pRemoteScheme = GOLCreateScheme();      	// used for the generic scheme

    pRemoteScheme->TextColor0 = TEXTCOLOR_UNPRESSED;
    pRemoteScheme->TextColor1 =  REMOTE_YELLOW;
    pRemoteScheme->CommonBkColor = REMOTE_GRAY;
    pRemoteScheme->EmbossDkColor = KEYPAD_DARKEMBOSS;
    pRemoteScheme->EmbossLtColor = KEYPAD_LIGHTEMBOSS;
    pRemoteScheme->Color0 = KEYPAD_BACKGROUND;
    pRemoteScheme->Color1 = REMOTE_BLACK;

    pVersionScheme = GOLCreateScheme();      	// used for the generic scheme

    pVersionScheme->TextColor1 = REMOTE_YELLOW;
    pVersionScheme->TextColor0 =  REMOTE_YELLOW;
    pVersionScheme->CommonBkColor = REMOTE_BLACK;
    pVersionScheme->EmbossDkColor = REMOTE_BLACK;
    pVersionScheme->EmbossLtColor = REMOTE_BLACK;
    pVersionScheme->Color0 = REMOTE_BLACK;
    pVersionScheme->Color1 = REMOTE_BLACK;

    pMenuButtonScheme = GOLCreateScheme();  	// used for menu buttons that has text

    pMenuButtonScheme->TextColor0 = REMOTE_BLACK;
    pMenuButtonScheme->TextColor1 = REMOTE_WHITE;
    pMenuButtonScheme->CommonBkColor = BACKGROUND_COLOR;
    pMenuButtonScheme->pFont = (void*)&REMOTEFONT_14;

    pTimeDateStyleScheme = GOLCreateScheme();	// used for the time and date display

    pTimeDateStyleScheme->TextColor0 = TEXTCOLOR_UNPRESSED;
    pTimeDateStyleScheme->TextColor1 = REMOTE_GRAY;
    pTimeDateStyleScheme->CommonBkColor = BACKGROUND_COLOR;
    pTimeDateStyleScheme->pFont = (void*)&TIMEDATEFONT;

    pBatStyleScheme = GOLCreateScheme();	 	// used for the battery level indicator

    pBatStyleScheme->EmbossDkColor = REMOTE_BLACK;
    pBatStyleScheme->EmbossLtColor = REMOTE_BLACK;
    pBatStyleScheme->Color0 = BATTERY_LEVEL_COLOR;
    pBatStyleScheme->Color1 = REMOTE_BLACK;

    // set the font to NULL so the progress bar used will not show
    // any text on the progress bar
    pBatStyleScheme->pFont = NULL;

    pTVRemoteStyleScheme = GOLCreateScheme();   // watch TV button schemes

    pTVRemoteStyleScheme->EmbossDkColor = KEYPAD_DARKEMBOSS;
    pTVRemoteStyleScheme->EmbossLtColor = KEYPAD_LIGHTEMBOSS;
    pTVRemoteStyleScheme->TextColor0 = KEYPAD_TEXTCOLOR0;
    pTVRemoteStyleScheme->TextColor1 = REMOTE_YELLOW;
    pTVRemoteStyleScheme->Color0 = KEYPAD_BACKGROUND;
    pTVRemoteStyleScheme->Color1 = REMOTE_BLACK;
    pTVRemoteStyleScheme->pFont = (void*)&TVREMOTEFONT;

    pWatchDiscStyleScheme = GOLCreateScheme();   // watch TV button schemes

    pWatchDiscStyleScheme->EmbossDkColor = KEYPAD_DARKEMBOSS;
    pWatchDiscStyleScheme->EmbossLtColor = KEYPAD_LIGHTEMBOSS;
    pWatchDiscStyleScheme->TextColor0 = KEYPAD_TEXTCOLOR0;
    pWatchDiscStyleScheme->TextColor1 = REMOTE_YELLOW;
    pWatchDiscStyleScheme->Color0 = KEYPAD_BACKGROUND;
    pWatchDiscStyleScheme->Color1 = REMOTE_BLACK;
    pWatchDiscStyleScheme->pFont = (void*)&FAVMENUFONT;
    pWatchDiscStyleScheme->TextColorDisabled = REMOTE_BLACK;
    pWatchDiscStyleScheme->ColorDisabled = REMOTE_GRAY;
    pWatchDiscStyleScheme->CommonBkColor = BACKGROUND_COLOR;

    pFavMenuScheme = GOLCreateScheme();   // favorite menu schemes

    pFavMenuScheme->EmbossDkColor = KEYPAD_DARKEMBOSS;
    pFavMenuScheme->EmbossLtColor = KEYPAD_LIGHTEMBOSS;
    pFavMenuScheme->TextColor0 = KEYPAD_TEXTCOLOR0;
    pFavMenuScheme->TextColor1 = REMOTE_YELLOW;
    pFavMenuScheme->Color0 = KEYPAD_BACKGROUND;
    pFavMenuScheme->Color1 = REMOTE_BLACK;
    pFavMenuScheme->pFont = (void*)&FAVMENUFONT;

    pSettingsScheme = GOLCreateScheme();   // Settings menu schemes

    pSettingsScheme->EmbossDkColor = REMOTE_GRAY64;
    pSettingsScheme->EmbossLtColor = TEXTCOLOR_UNPRESSED;
    pSettingsScheme->TextColor0 = REMOTE_BLACK;
    pSettingsScheme->TextColor1 = REMOTE_WHITE;
    pSettingsScheme->Color0 = REMOTE_BLACK;
    pSettingsScheme->Color1 = REMOTE_WHITE;
    pSettingsScheme->pFont = (void*)&TIMEDATEFONT;

    pSettingsScheme2 = GOLCreateScheme();   // Settings menu schemes 2

    pSettingsScheme2->EmbossDkColor = KEYPAD_LIGHTEMBOSS;
    pSettingsScheme2->EmbossLtColor = KEYPAD_LIGHTEMBOSS;
    pSettingsScheme2->TextColor0 = REMOTE_WHITE;
    pSettingsScheme2->TextColor1 = REMOTE_YELLOW;
    pSettingsScheme2->Color0 = KEYPAD_BACKGROUND;
    pSettingsScheme2->Color1 = REMOTE_BLACK;
    pSettingsScheme2->CommonBkColor = REMOTE_GRAY;
    pSettingsScheme2->pFont = (void*)&FAVMENUFONT;
    pSettingsScheme2->ColorDisabled = REMOTE_GRAY;
    pSettingsScheme2->TextColorDisabled = KEYPAD_LIGHTEMBOSS;

    pTimeSelectScheme = GOLCreateScheme();

    pTimeSelectScheme->EmbossDkColor = KEYPAD_DARKEMBOSS;
    pTimeSelectScheme->EmbossLtColor = KEYPAD_LIGHTEMBOSS;
    pTimeSelectScheme->TextColor0 = REMOTE_YELLOW;;
    pTimeSelectScheme->TextColor1 = KEYPAD_TEXTCOLOR1;
    pTimeSelectScheme->Color0 = REMOTE_BLACK;
    pTimeSelectScheme->Color1 = REMOTE_BLACK;
    pTimeSelectScheme->CommonBkColor = REMOTE_GRAY;
    pTimeSelectScheme->pFont = (void*)&FAVMENUFONT;

    pSettingsScheme3 = GOLCreateScheme();   // Settings menu schemes 3

    pSettingsScheme3->EmbossDkColor = KEYPAD_DARKEMBOSS;
    pSettingsScheme3->EmbossLtColor = KEYPAD_LIGHTEMBOSS;
    pSettingsScheme3->TextColor0 = KEYPAD_TEXTCOLOR0;
    pSettingsScheme3->TextColor1 = REMOTE_YELLOW;
    pSettingsScheme3->Color0 = KEYPAD_BACKGROUND;
    pSettingsScheme3->Color1 = REMOTE_BLACK;
    pSettingsScheme3->CommonBkColor = REMOTE_GRAY;
    pSettingsScheme3->pFont = (void*)&FAVMENUFONT;


}
Exemplo n.º 4
0
int main(void)
{

    // Start from displaying of PIC24 banners
	_display_state = DISP_HELLO;

    // Setup PortA IOs as digital
    AD1PCFG = 0xffff;

	//IO Mapping for PIC24FJ64GA004 
	#ifdef __PIC24FJ64GA004__ //Defined by MPLAB when using 24FJ64GA004 device
		ioMap();
		lockIO();
	#endif

    // Setup SPI to communicate to EEPROM
    SPIMPolInit();

    // Setup EEPROM IOs
    EEPROMInit();

    // Setup the UART
    UART2Init();

	// Setup the timer
	TimerInit();
    
	// Setup the LCD
	mLCDInit();

	// Setup debounce processing
	BtnInit(); 

    // Setup the ADC
    ADCInit();

	// Setup the banner processing
	BannerStart();

	// Setup the RTCC
    RTCCInit();

	while (1) {
		LCDProcessEvents();
        ADCProcessEvents();

		if (TimerIsOverflowEvent()){

			// Button debounce processing
			BtnProcessEvents();
			// State dependent processing
			switch (_display_state) {
                // Show Microchip banners
				case DISP_HELLO: BannerProcessEvents(); break;
                // Show clock
				case DISP_CLOCK: TBannerProcessEvents(); break;
                // Show voltage and temperature
				case DISP_VOLTAGE: VBannerProcessEvents(); break;

                default: _display_state = DISP_HELLO;
			}// End of switch (_display_state)...

            // If S6 is pressed show the next example
			if (BtnIsPressed(4)) {

                // Change state and clear display 
                if(!TBannerIsSetup()){
       				_display_state++;
                    if(_display_state > DISP_MAX)
                         _display_state = 0;

                    // Initialize state
                    switch (_display_state) {
                        // Microchip banners
                 	    case DISP_HELLO: BannerInit(); break;
                        // Clock
    				    case DISP_CLOCK: TBannerInit(); break;
                        // Voltage and temperature
	        			case DISP_VOLTAGE: VBannerInit(); break;
                        default:
                             _display_state = 0;
        		    }// End of switch (_display_state)...
                    mLCDClear();
                }else
                    TBannerNext();

                // wait for button released
                while (BtnIsPressed(4)){
					BtnProcessEvents();
				}
			}// End of 	if (BtnIsPressed(4)){...

            if(_display_state == DISP_CLOCK){

        		if (BtnIsPressed(1)){
                        TBannerSetup();
                    // wait for button released
                    while (BtnIsPressed(1))	BtnProcessEvents();
                }// End of if (BtnIsPressed(1 ...

                if(TBannerIsSetup()){
	           		if (BtnIsPressed(2)) {
                        TBannerChangeField(1);
                        // wait for button released
                        while (BtnIsPressed(2))	BtnProcessEvents();
    		    	}// End of if (BtnIsPressed(2)){...
    
	    		    if (BtnIsPressed(3)) {
                        // wait for button released
                        TBannerChangeField(0);
                        while (BtnIsPressed(3))	BtnProcessEvents();
        			}// End of if (BtnIsPressed(3)){...
                }// End of if(TBannerIsSetup( ...

            }// End of if(_display_state == DISP_SET_CLOCK ...



            if(_display_state == DISP_VOLTAGE){

        		if (BtnIsPressed(2)){
                    ADCSetFromMemory();
                    // wait for button released
                    while (BtnIsPressed(2)){
						BtnProcessEvents();
					}
                }// End of if (BtnIsPressed(2 ...

           		if (BtnIsPressed(3)){
                    ADCStoreTemperature();
                    // wait for button released
                    while (BtnIsPressed(3)){
						BtnProcessEvents();
					}
  		    	}// End of if (BtnIsPressed(3)){...

            }// End of if(_display_state ...




    	}// End of if (TimerIsOverflowEvent()...
    }// End of while(1)...
}// End of main()...