Example #1
0
void DisplayMenu(unsigned char iii)
{
    unsigned char i;
    if(iii&MENU_INIT_BACK)
    {
        //Fill background
        TSLCDFillRect(0,239,0,319,TS_COL_BLACK,TS_MODE_NORMAL);
        //Fill title
        TSLCDFillRect(0,30,0,319,TS_COL_BLUE,TS_MODE_NORMAL);
        TSLCDSetFontColor(TS_COL_WHITE);
        TSLCDSetBackColor(TS_COL_BLUE);
        TSLCDPrint((320-TSLCDGetStringWidth("MP3 PLAYER"))>>1,215,"MP3 PLAYER",TS_MODE_FULL);
    }
Example #2
0
int main(void)
{
	int data;
	int index=0;
	char buffer[100];
	Config32MHzClock();

	CLK.PSCTRL = 0x00; // no division on peripheral clock

	UsartInit();
	
	UsartWriteString("\r\n\r\nBOOT: Starting...\r\n");

	//Analog Mux
	PORTF.DIR = 0b11111111; //Output

	PORTF.OUTCLR = PIN6_bm;
	PORTF.OUTCLR = PIN4_bm | PIN7_bm;
	PORTF.OUTSET = PIN5_bm;

	PORTF.OUTCLR = PIN0_bm | PIN1_bm | PIN2_bm | PIN3_bm;
	//PORTF.OUTSET = PIN1_bm;

	PORTF.OUTCLR = PIN6_bm;
	PORTF.OUTSET = PIN4_bm;
	PORTF.OUTCLR = PIN5_bm;
	PORTF.OUTSET = PIN7_bm; //WR

	UsartWriteString("BOOT: Analog Mux configured...\r\n");

	//ADC
	PORTQ.DIR = 0b1111; //Output
	PORTQ.OUTCLR = PIN1_bm | PIN3_bm; //PWRDWN pins

	PORTQ.OUTSET = PIN0_bm | PIN2_bm; //ENCODE pins

	//Reading Values
	PORTD.DIR = 0b00000000; //Input
	PORTE.DIR = 0b00000000; //Input

	UsartWriteString("BOOT: ADC configured...\r\n");

	//TFT LCD
	TFT_init();

	Delay100ms(10);
	Delay100ms(10);
	Delay100ms(10);
	Delay100ms(10);
	Delay100ms(10);
	
	TSLCDFillRect(0,TS_SIZE_X-1,0,TS_SIZE_Y-1,TS_COL_BLUE,TS_MODE_NORMAL);
	/*
	TSLCDFillRect(0,TS_SIZE_X-1,0,70,TS_COL_WHITE,TS_MODE_NORMAL);
	TSLCDSetFontColor(TS_COL_BLUE);
	TSLCDPrintStr(2,6,"Testing ELT240320TP with AVR",TS_MODE_NORMAL);
	TSLCDFillRect(20,80,90,130,TS_COL_BLACK,TS_MODE_NORMAL);
	TSLCDFillRect(30,90,100,140,TS_COL_YELLOW,TS_MODE_NORMAL);
	TSLCDFillRect(20,80,160,200,TS_COL_BLACK,TS_MODE_NORMAL);
	TSLCDFillRect(30,90,170,210,TS_COL_RED,TS_MODE_NORMAL);
	TSLCDFillRect(195,205,71,TS_SIZE_Y-1,TS_COL_WHITE,TS_MODE_NORMAL);
	TSLCDFillCirc(200,155,60,TS_COL_WHITE,TS_MODE_NORMAL);
	TSLCDFillCirc(200,155,50,TS_COL_BLUE,TS_MODE_NORMAL);
	TSLCDFillCirc(200,155,40,TS_COL_BLACK,TS_MODE_NORMAL);
	TSLCDFillCirc(200,155,30,TS_COL_RED,TS_MODE_NORMAL);
	*/
	
	UsartWriteString("BOOT: TFT LCD configured...\r\n");

	//Timing Lines

	//INT0: breakoutbar6 / A0 / frame
	//INT1: slicebin0 / A1 / pixel
	PORTA.INTCTRL = (PORTA.INTCTRL & ~PORT_INT0LVL_gm ) | PORT_INT0LVL_LO_gc; 
	PORTA.INTCTRL = (PORTA.INTCTRL & ~PORT_INT1LVL_gm ) | PORT_INT1LVL_LO_gc;

	//Detect rising edge only
	PORTA.PIN0CTRL |= 0x01;
	PORTA.PIN0CTRL &= ~0x06;
	PORTA.PIN1CTRL |= 0x01;
	PORTA.PIN1CTRL &= ~0x06;

    PORTA.INT0MASK = PIN0_bm;
	PORTA.INT1MASK = PIN1_bm;
	
	UsartWriteString("BOOT: Interrupts configured...\r\n");
	
	//EBI/SDRAM
	ebi_setup_port(12, 0, 0, EBI_PORT_3PORT | EBI_PORT_SDRAM);
	/*
	 * Configure the EBI chip select for an 8 MB SDRAM located at
	 * \ref BOARD_EBI_SDRAM_BASE.
	 */
	ebi_cs_set_mode(&cs_config, EBI_CS_MODE_SDRAM_gc);
	ebi_cs_set_address_size(&cs_config, EBI_CS_ASPACE_8MB_gc);
	ebi_cs_set_base_address(&cs_config, BOARD_EBI_SDRAM_BASE);

	/* Configure the EBI chip select to be in SDRAM mode. */
	ebi_sdram_set_mode(&cs_config, EBI_CS_SDMODE_NORMAL_gc);

	/* Setup the number of SDRAM rows and columns. */
	ebi_sdram_set_row_bits(&sdram_config, 12);
	ebi_sdram_set_col_bits(&sdram_config, 10);

	/* Further, setup the SDRAM timing. */
	ebi_sdram_set_cas_latency(&sdram_config, 3);
	ebi_sdram_set_mode_delay(&sdram_config, EBI_MRDLY_2CLK_gc);
	ebi_sdram_set_row_cycle_delay(&sdram_config, EBI_ROWCYCDLY_7CLK_gc);
	ebi_sdram_set_row_to_precharge_delay(&sdram_config, EBI_RPDLY_7CLK_gc);
	ebi_sdram_set_write_recovery_delay(&sdram_config, EBI_WRDLY_1CLK_gc);
	ebi_sdram_set_self_refresh_to_active_delay(&sdram_config,
			EBI_ESRDLY_7CLK_gc);
	ebi_sdram_set_row_to_col_delay(&sdram_config, EBI_ROWCOLDLY_7CLK_gc);
	ebi_sdram_set_refresh_period(&sdram_config, BOARD_EBI_SDRAM_REFRESH);
	ebi_sdram_set_initialization_delay(&sdram_config,
			BOARD_EBI_SDRAM_INITDLY);

	/* Write SDRAM configuration into the EBI registers. */
	ebi_sdram_write_config(&sdram_config);
	/* Write the chip select configuration into the EBI registers. */
	ebi_cs_write_config(EBI_SDRAM_CS, &cs_config);

	ebi_enable_cs(EBI_SDRAM_CS, &cs_config);
	
	UsartWriteString("BOOT: SDRAM configured...\r\n");
	
	do {
		// Wait for SDRAM to initialize.
	} while (!ebi_sdram_is_ready());
	
	UsartWriteString("BOOT: SDRAM ready...\r\n");
	
	status_code_t retval = ebi_test_data_bus((hugemem_ptr_t)BOARD_EBI_SDRAM_BASE);
	if (retval == STATUS_OK) {
		UsartWriteString("BOOT: SDRAM data bus test completed...\r\n");
	} else {
		UsartWriteString("BOOT: WARNING: SDRAM data bus test failed...\r\n");
	}
	
	retval = ebi_test_addr_bus((hugemem_ptr_t)BOARD_EBI_SDRAM_BASE,BOARD_EBI_SDRAM_SIZE);
	if (retval == STATUS_OK) {
		UsartWriteString("BOOT: SDRAM address bus test completed...\r\n");
	} else {
		UsartWriteString("BOOT: WARNING: SDRAM address bus test failed...\r\n");
	}

	//_delay_ms(1);
	
	//SD Card testing
	UsartWriteString("BOOT: SD Card testing...\r\n");
	//_delay_ms(1);
	
	FRESULT f_err_code;
	static FATFS FATFS_Obj;

	UsartWriteString("BOOT: SD Card: initializing disk...\r\n");
	disk_initialize(0);

	UsartWriteString("BOOT: SD Card: mounting disk...\r\n");
	f_err_code = f_mount(0, &FATFS_Obj);

	if (f_err_code == FR_OK) {
	
		FIL fil_obj;
		int test_number = 5;

		UsartWriteString("BOOT: SD Card: opening file...\r\n");
		f_open(&fil_obj, "asplfc.txt", FA_WRITE);
		UsartWriteString("BOOT: SD Card: writing file...\r\n");
		int out = f_printf(&fil_obj, "moo %d", test_number);
		UsartWriteString("BOOT: SD Card: closing file...\r\n");
		f_close(&fil_obj);

	} else {
		UsartWriteLine("BOOT: WARNING: No SD card found...");
	}

	//PORTQ.OUTCLR = PIN2_bm | PIN4_bm;

	UsartWriteString("\n\rASP LFC firmware -- v0.1\r\n");
	UsartWriteString("> ");
	while(1)
	{
		data=UsartReadChar(); // read char
		// check for carriage return and try to match/execute command
		if((data == '\r')||(index==sizeof(buffer)))
		{
			//PORTF.OUT ^= (1<<0);      // switch LED
			buffer[index]=0;          // null terminate
			index=0;                  // reset buffer index
			UsartWriteString("\n\r"); // echo newline
			ParseCommand(buffer);     // attempt to parse command
			  UsartWriteString("> ");
		}
		else if(data==8)              // backspace character
		{
			if(index>0)
				index--;                  // backup one character
			UsartWriteChar(data);
		}
		else
		{
			buffer[index++]=data;
			UsartWriteChar(data);
		};

		//	UsartWriteChar(data); // write char
		//	_delay_ms(100);
		//	PORTF.OUT ^= (1<<0); // toggle LED

	};
};
Example #3
0
int main(void)
{
	/*Set the clocking to run at 80Mhz from the crystal of 16MHz using PLL*/
	SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);

	/* Set the clock for the GPIO Port A,B, E and F */
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);

	/* Set the type of the GPIO Pin */
	GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
	GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5);
	GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_3);

	/* Set the clock for the SSI Module0 */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);

    //Initialising UART
    InitConsole();

	/*Configure SysTick for a 100Hz interrupt.  The FatFs driver wants a 10 milliseconds interrupt.*/
	SysTickPeriodSet(SysCtlClockGet() / 10000);
	SysTickIntRegister(SysTickHandler);
	SysTickEnable();
	SysTickIntEnable();

	/* Set the type of the GPIO Pin of PORTF */
    GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2 );
	GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4);

	/* GPIO Pin2 on PORT F initialized to 0 */
	GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2 , 0 );

	/* Configure GPIO pad with internal pull-up enabled */
	GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU);

	/* Enable global interupts */
	IntMasterEnable();

	UARTprintf("MOUNT initialize!!!\n");

	rc=f_mount(0, &fatfs);		// Register volume work area (never fails)

	if(rc!=FR_OK)
	{
		UARTprintf("1.rc=%d\nERROR MOUNT!!!",rc);
	}
    /* Reset and Initialise the LCD */
	TSLCDRst();
    TSLCDInit();
    setBitBL;

    /* TFT Home Display */
    TSLCDFillRect(0,TS_SIZE_X-1,0,TS_SIZE_Y-1,TS_COL_AQUA,TS_MODE_NORMAL);
    TSLCDFillRect(0,TS_SIZE_X-1,120,200,TS_COL_YELLOW,TS_MODE_NORMAL);

    TSLCDSetFontColor(TS_COL_RED);
   	TSLCDPrintStr(4,0,"Tiva Launchpad Based .BMP Image Display ",TS_MODE_NORMAL);
   	TSLCDPrintStr(5,0,"             TI-CEPD, NSIT              ",TS_MODE_NORMAL);
   	TSLCDShowPic(157,175,218,236,smile,TS_MODE_FULL);

while(1)
{

	while(GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4)!=0);
	SysCtlDelay(SysCtlClockGet()/100);
	flag1++;
	flag2=0;
	if(flag1==8)
		flag1=1;

	if(flag2==0)
	{
	//Opening test1.bmp
		if(flag1==1)
		{
			rc=f_open(&fil,"test1.bmp",FA_OPEN_EXISTING|FA_WRITE|FA_READ);
			SysCtlDelay(SysCtlClockGet()/100);
//			UARTprintf("Test1::::\n");
			if(rc!=FR_OK)
			{
				UARTprintf("2.rc=%d\n ERROR OPEN!!!\n",rc);
			}
		}
	//Opening test2.bmp
		else if((flag1==2)&&(flag2==0))
		{
			rc=f_open(&fil,"test2.bmp",FA_OPEN_EXISTING|FA_WRITE|FA_READ);
			SysCtlDelay(SysCtlClockGet()/100);
//			UARTprintf("Test2::::\n");
			if(rc!=FR_OK)
			{
				UARTprintf("2.rc=%d\n ERROR OPEN!!!\n",rc);
			}
		}
	//Opening test3.bmp
		else if((flag1==3)&&(flag2==0))
		{
			rc=f_open(&fil,"test3.bmp",FA_OPEN_EXISTING|FA_WRITE|FA_READ);
			SysCtlDelay(SysCtlClockGet()/100);
//			UARTprintf("Test3::::\n");
			if(rc!=FR_OK)
			{
				UARTprintf("2.rc=%d\n ERROR OPEN!!!\n",rc);
			}
		}
	//Opening test4.bmp
		else if((flag1==4)&&(flag2==0))
		{
			rc=f_open(&fil,"test4.bmp",FA_OPEN_EXISTING|FA_WRITE|FA_READ);
			SysCtlDelay(SysCtlClockGet()/100);
//			UARTprintf("Test4::::\n");
			if(rc!=FR_OK)
			{
				UARTprintf("2.rc=%d\n ERROR OPEN!!!\n",rc);
			}
		}
	//Opening test5.bmp
		else if((flag1==5)&&(flag2==0))
		{
			rc=f_open(&fil,"test5.bmp",FA_OPEN_EXISTING|FA_WRITE|FA_READ);
			SysCtlDelay(SysCtlClockGet()/100);
//			UARTprintf("Test4::::\n");
			if(rc!=FR_OK)
			{
				UARTprintf("2.rc=%d\n ERROR OPEN!!!\n",rc);
			}
		}
	//Opening test6.bmp
		else if((flag1==6)&&(flag2==0))
		{
			rc=f_open(&fil,"test6.bmp",FA_OPEN_EXISTING|FA_WRITE|FA_READ);
			SysCtlDelay(SysCtlClockGet()/100);
//			UARTprintf("Test4::::\n");
			if(rc!=FR_OK)
			{
				UARTprintf("2.rc=%d\n ERROR OPEN!!!\n",rc);
			}
		}
//Opening test7.bmp
		else if((flag1==7)&&(flag2==0))
		{
			rc=f_open(&fil,"test7.bmp",FA_OPEN_EXISTING|FA_WRITE|FA_READ);
			SysCtlDelay(SysCtlClockGet()/100);
//			UARTprintf("Test4::::\n");
			if(rc!=FR_OK)
			{
				UARTprintf("2.rc=%d\n ERROR OPEN!!!\n",rc);
			}
		}

		//Setting background colour
		TSLCDFillRect(0,TS_SIZE_X-1,0,TS_SIZE_Y-1,TS_COL_AQUA,TS_MODE_NORMAL);

		//Printing Image data
		rc=f_read(&fil,&dummy,10, &br);

		//Reading bmp offset address 10 or 0xA
		rc=f_read(&fil,&addr,4, &br);
//		UARTprintf("address::%04d\n",addr);

		rc=f_read(&fil,&dummy,4, &br);

		//Reading Width at address 18 or 0x12
		rc=f_read(&fil,&width,4, &br);
//		UARTprintf("width::%04d\n",width);

		//Reading height at address 22 or 0x16
		rc=f_read(&fil,&height,4, &br);
//		UARTprintf("height::%04d\n",height);

		rc=f_read(&fil,&dummy,4, &br);

		//Reading compression method of image at address 30 or 0x1E
		rc=f_read(&fil,&c_method,4, &br);
//		UARTprintf("Compression method::%04d\n",c_method);

		rc=f_read(&fil,&dummy,addr-34, &br);

		//Finding the number of bytes for padding
		remainder=(width*3)%4;
		if(remainder!=0)
		{
			remainder=4-remainder;
		}
//		UARTprintf("dummy bytes::%04d\n",remainder);

		//Setting the offset to display the image in centre
		_height=120+height/2;

		//Reading Bitmap data  at address::54
		for(j=1;j<=height;j++)
		{
			for(i=1;i<=width;i++)
				{
				rc=f_read(&fil,&pix1,1, &br);
				rc=f_read(&fil,&pix2,1, &br);
				rc=f_read(&fil,&pix3,1, &br);
				_pix1=pix1/8;
				_pix2=pix2/4;
				_pix3=pix3/8;
/*				UARTprintf("blue::%04d\n",pix1);
				UARTprintf("blue::%04d\n",_pix1<<11);
				UARTprintf("green::%06d\n",pix2);
				UARTprintf("green::%06d\n",_pix2<<5);
				UARTprintf("red::%04d\n",pix3);
				UARTprintf("red::%04d\n",_pix3);
*/
				tft_pix=(_pix1<<11)+(_pix2<<5)+_pix3;
//				UARTprintf("tft pix::%04d\n",tft_pix);
				pix[i-1]=tft_pix;
				}
			TSLCDShowPic(160-(width/2),159+(width/2),_height-j,_height-j,pix,TS_MODE_FULL);
			rc=f_read(&fil,&dummy,remainder, &br);
		}
		rc = f_close(&fil);
		flag2=1;
	}
}
	return 0;
}