Exemple #1
0
void InitIO()
{
	DrvGPIO_SetPortBits (E_GPA, 0xFFFF);
	DrvGPIO_SetPortBits (E_GPB, 0xFFFF);
	DrvGPIO_SetPortBits (E_GPC, 0xFFFF);
	DrvGPIO_SetPortBits (E_GPD, 0xFFFF);
	DrvGPIO_SetPortBits (E_GPE, 0xFFFF);
}
void Bargraph_Init()
{
	uint32_t i;
	for(i=0;i<8;i++)
	{
		DrvGPIO_Open(0,i,E_IO_OUTPUT);
		DrvGPIO_Open(2,i,E_IO_OUTPUT);
		DrvGPIO_Open(3,i,E_IO_OUTPUT);
	}
	DrvGPIO_SetPortBits(0,0);
	DrvGPIO_SetPortBits(2,0);
	DrvGPIO_SetPortBits(3,0);
	bg_l = 0;
	bg_r = 0;
	bg_disp_pos = 0;
}
void Bargraph_Display()
{
	int32_t disp;
	unsigned char lr_sel, digit;

	lr_sel = bg_disp_pos & 1;
	digit = bg_disp_pos >> 1;

	DrvGPIO_SetPortBits(0,0);
	DrvGPIO_SetPortBits(2,0);
	DrvGPIO_SetPortBits(3,0);

	if(lr_sel)
	{
		disp = bg_l - (digit << 3);
		if(disp < 0)
		{
			disp = 0;
		}
		DrvGPIO_SetPortBits(2, (disp > 7) ? 0xFF : ((1 << disp) - 1));
		DrvGPIO_SetPortBits(0, 1 << digit);
	}
	else
	{
		disp = bg_r - (digit << 3);
		if(disp < 0)
		{
			disp = 0;
		}
		DrvGPIO_SetPortBits(3, (disp > 7) ? 0xFF : ((1 << disp) - 1));
		DrvGPIO_SetPortBits(0, 1 << digit);
	}

   	if(bg_disp_pos < 13)
   	{
    	bg_disp_pos++;
	}
	else
	{
		bg_disp_pos = 0;
	}
}