Example #1
0
/**
* \brief The main function will toggle between two images on
* corresponding EPD depends on specified EPD size
*
* \note
* EPD size: EPD_144 = 1.44 inch, EPD_200 = 2 inch, EPD_270 = 2.7 inch
*/
int main(void){
	/** Initialize system clock and Xplained pro board */
	sysclk_init();
	irq_initialize_vectors();
	cpu_irq_enable();
	//sleepmgr_init(); // Optional
	board_init();
	/** Initialize EPD hardware */
	EPD_display_init();
	
for(;;) {
		/** User selects which EPD size to run demonstration by changing the
		* 	USE_EPD_Type in Atmel Studio Project properties under Symbols 
		* 	The Image data arrays for each EPD size are defined at image_data.c 
		*/
		#if(USE_EPD_Type==USE_EPD144)
				EPD_display_from_pointer(EPD_144,(uint8_t *)&image_array_144_2,(uint8_t *)&image_array_144_1);
		#elif(USE_EPD_Type==USE_EPD200)
				EPD_display_from_pointer(EPD_200,(uint8_t *)&image_array_200_2,(uint8_t *)&image_array_200_1);
		#elif(USE_EPD_Type==USE_EPD270)
				EPD_display_from_pointer(EPD_270,(uint8_t *)&image_array_270_2,(uint8_t *)&image_array_270_1);
		#endif


		/* The interval of two images alternatively change is 10 seconds */
		delay_ms(10000);


		#if(USE_EPD_Type==USE_EPD144)
			EPD_display_from_pointer(EPD_144,(uint8_t *)&image_array_144_1,(uint8_t *)&image_array_144_2);
		#elif(USE_EPD_Type==USE_EPD200)
			EPD_display_from_pointer(EPD_200,(uint8_t *)&image_array_200_1,(uint8_t *)&image_array_200_2);
		#elif(USE_EPD_Type==USE_EPD270)
			EPD_display_from_pointer(EPD_270,(uint8_t *)&image_array_270_1,(uint8_t *)&image_array_270_2);
		#endif

		/* The interval of two images alternatively change is 10 seconds */
		delay_ms(10000);
		
	}

}
Example #2
0
/** The main function will start toogling between two images on corresponding EPD
 *  depends on specified EPD size or working with EPD Kit Tool */
int main(void) {
	/* Initialize system clock and TI LaunchPad board */
	system_init();

	/*flip image bytes*/
	flip_image_bytes((uint8_t *)&image_array_270_1,(uint8_t *)&image_array_270_1);
//	flip_image_bytes((uint8_t *)&image_array_270_2,(uint8_t *)&image_array_270_2);


	/* Initialize EPD hardware */
	EPD_display_init();
	__enable_interrupt();//enable interrupts
	//__bis_SR_register(GIE);

#if (defined EPD_KIT_TOOL_FUNCTIONS) /** if working with EPD Kit Tool ***************/
	LED_init();
	EPD_Kit_Tool_process_init();
	for(;;) {
		EPD_Kit_tool_process_task();
	}

#else /* if showing two images alternatively ***************************************/
	for(;;) {
		//puts("he");//TODO : remove debug

		/* User selects which EPD size to run demonstration by changing the
		 * USE_EPD_Type in conf_EPD.h
		 * The Image data arrays for each EPD size are predefined at image_data.c */
#if(USE_EPD_Type==EPD_144)
		EPD_display_from_pointer(EPD_144,(uint8_t *)&image_array_144_2,(uint8_t *)&image_array_144_1);
#elif(USE_EPD_Type==EPD_200)
		EPD_display_from_pointer(EPD_200,(uint8_t *)&image_array_200_2,(uint8_t *)&image_array_200_1);
#elif(USE_EPD_Type==EPD_270)
		/* Due to if loading two image arrays for 2.7", the code size will exceed the MSP430G2553 flash.
		 * So the demo will load 1st image continuously.*/
#ifdef G2_Aurora_Ma
		EPD_display_from_pointer(EPD_270,(uint8_t *)&image_array_270_1,(uint8_t *)&image_array_270_1);
#else
		EPD_display_from_pointer(EPD_270,image_array_270_1,image_array_270_1);
#endif
#elif(USE_EPD_Type==EPD_190)
        EPD_display_from_pointer(EPD_190,(uint8_t *)&image_array_190_2,(uint8_t *)&image_array_190_1);
#elif(USE_EPD_Type==EPD_260)
        EPD_display_from_pointer(EPD_260,(uint8_t *)&image_array_260_2,(uint8_t *)&image_array_260_1);
#endif

		/* The interval of two images alternatively change is 5 seconds */
		delay_ms(5000);

		P2OUT |= BIT0;

#if(USE_EPD_Type==EPD_144)
		EPD_display_from_pointer(EPD_144,(uint8_t *)&image_array_144_1,(uint8_t *)&image_array_144_2);
#elif(USE_EPD_Type==EPD_200)
		EPD_display_from_pointer(EPD_200,(uint8_t *)&image_array_200_1,(uint8_t *)&image_array_200_2);
#elif(USE_EPD_Type==EPD_270)
		/* Due to if loading two image arrays for 2.7", the code size will exceed the MSP430G2553 flash.
		 * So the demo will load 1st image continuously.*/
#ifdef G2_Aurora_Ma
		EPD_display_from_pointer(EPD_270,(uint8_t *)&image_array_270_1,(uint8_t *)&image_array_270_1);
#else
	//	EPD_display_from_pointer(EPD_270,flipped_image_array_270_2,flipped_image_array_270_1);
#endif
#elif(USE_EPD_Type==EPD_190)
        EPD_display_from_pointer(EPD_190,(uint8_t *)&image_array_190_1,(uint8_t *)&image_array_190_2);
#elif(USE_EPD_Type==EPD_260)
        EPD_display_from_pointer(EPD_260,(uint8_t *)&image_array_260_1,(uint8_t *)&image_array_260_2);
#endif

		/* The interval of two images alternatively change is 5 seconds */
		delay_ms(5000);

		P2OUT &= ~BIT0;
	}
#endif
}
Example #3
0
// *****************************************************************************
// void SYSTEM_InitializeBoard(void)
// *****************************************************************************
void SYSTEM_InitializeBoard(void)
{
    // SPI initialization for Serial RAM
    const DRV_SPI_INIT_DATA SRAM_SPI_Init_Data = {
                                2, 3,
                                7, 1,
                                SPI_BUS_MODE_1, 0};

    // SPI initialization for EPD
    const DRV_SPI_INIT_DATA EPD_SPI_Init_Data = {
                                1, 3,
                                7, 1,
                                SPI_BUS_MODE_1, 0};

    // ---------------------------------------------------------
    // Make sure the display DO NOT flicker at start up
    // ---------------------------------------------------------
    DisplayBacklightConfig();
    DisplayPowerConfig();
    DisplayBacklightOff();

    // ---------------------------------------------------------
    // ADC Explorer 16 Development Board Errata (work around 2)
    // RB15 should be output
    // ---------------------------------------------------------
    LATBbits.LATB15 = 0;
    TRISBbits.TRISB15 = 0;

    // ---------------------------------------------------------
    // EPD PicTail Plus Daughter Board 23K256
    // SPI-RAM Device Chip Select pin
    // ---------------------------------------------------------
    MCHP_23K256_CS_TRIS = 0;
    MCHP_23K256_CS_LAT  = 1;

    // ---------------------------------------------------------
    // EPD PicTail Plus Daughter
    // Board EPD Controller Device Chip Select pin
    // ---------------------------------------------------------
    DRV_EPD_SPI_CS_TRIS     = 0;
    DRV_EPD_SPI_CS_LAT     = 1;

    // ---------------------------------------------------------
    // SPI Port pins
    // ---------------------------------------------------------
    // spi-clock pin
    TRISFbits.TRISF6 = 0;
    // spi-output pin
    TRISFbits.TRISF8 = 0;
    // spi-intput pin
    TRISFbits.TRISF7 = 1;

    // initialize SPI driver
    DRV_RAM_23K256_Initialize((DRV_SPI_INIT_DATA*)&SRAM_SPI_Init_Data);

    // initialize EPD driver
    DRV_EPD_SPI_Initialize((DRV_SPI_INIT_DATA*)&EPD_SPI_Init_Data);

    // Initialize the e-paper (EPD)
    EPD_display_init();

    // ---------------------------------------------------------
    // Initialize the Display Driver
    // ---------------------------------------------------------
    DRV_GFX_Initialize();
    GFX_Initialize();
    
    // Initialize the reference timer.
    SYSTEM_TickInit();    


}