예제 #1
0
파일: TP500_main.c 프로젝트: tongjingyu/Prj
void Task0(void *Tags)
{
	
	Task0_Init();
	IO_Set(0,True);
	while(1)
	{
			if(UIShowValue.RunFlag&WRF_GPRS_Connected)
			{
				IO_Set(1,True);
				Tos_TaskDelay(2000);
				IO_Set(1,False);
				Tos_TaskDelay(10);
				IO_Set(1,True);
				Tos_TaskDelay(100);
				IO_Set(1,False);
				Tos_TaskDelay(10);
			}else
			if(UIShowValue.RSSI<99&UIShowValue.RSSI>8)
			{
				IO_Set(1,True);
				Tos_TaskDelay(1000);
				IO_Set(1,False);
				Tos_TaskDelay(10);
			}else 
			{
				
				IO_Set(1,True);
				Tos_TaskDelay(1000);
				IO_Set(1,False);
				Tos_TaskDelay(1000);
			}
	}
}
예제 #2
0
파일: io.c 프로젝트: cmonr/PAL
void IO_Toggle(tPin pin)
{
    // Pin is an input
    if (pins[pin].state == HiZ)
        return;
    
    // Toggle Pin
    if (pins[pin].state == LOW)
        IO_Set(pin, HIGH);
    else
        IO_Set(pin, LOW);
}
예제 #3
0
파일: App1.c 프로젝트: tongjingyu/Prj
void TaskBigShow()
{
	uint8 i=30;
	while(i--)
	{
	IO_Set(1,False);
	IO_Set(0,False);
	Tos_TaskDelay(100);
	IO_Set(1,True);
	IO_Set(0,True);
	Tos_TaskDelay(100);
	}
}
예제 #4
0
//*********************************************************
void Mcu_Initialization()
{
	//Fosc
	Fosc_Set();
	//I/O
	IO_Set();
	//Timer0
	TMR0_Set();
	//Timmer1
	TMR1_Set();
	//ADC
	ADC_Set();
	//Timmer2
	//TMR2_Set();
	//INT
	INT_Set();
	//IOC
	IOC_Set();
	//I2C	
	I2C_Set();
	//UART	
	UART_Set();
	//Flash_Memory
	Flash_Memory_Set();
	//Watch dog
	WDT_Set();
}
예제 #5
0
파일: main.c 프로젝트: JonahLiu/ia6140
void SelectChannel(int ch)
{
	//IO_SetDirection(CH_SEL_OFFSET, IO_DIR_OUTPUT);
	if(ch)
		IO_Set(CH_SEL_OFFSET);
	else
		IO_Clear(CH_SEL_OFFSET);
}
예제 #6
0
파일: main.c 프로젝트: JonahLiu/ia6140
void SPI_shift_out(u32 data, u8 n)
{
	u32 mask;

	while(n>0)
	{
		mask = 1u<<(n-1);

		IO_Clear(SPI_SCLK);

		if(data & mask)
			IO_Set(SPI_MOSI);
		else
			IO_Clear(SPI_MOSI);

		IO_Set(SPI_SCLK);

		--n;
	}

	IO_Clear(SPI_SCLK);
}
예제 #7
0
파일: main.c 프로젝트: JonahLiu/ia6140
size_t KEY_write(char *buf, size_t size)
{
	size_t n;
	u32 data;
	IO_Set(WDG_EN);
	n=0;
	while(n<size)
	{
		data = buf[n++];
		SPI_shift_out(data,8);
	}
	IO_Clear(WDG_EN);
	return n;
}
예제 #8
0
파일: main.c 프로젝트: JonahLiu/ia6140
void MDIO_shift_out(PHY_cfg *cfg, u32 data, u8 n)
{
	u32 mask;

	//IO_SetDirection(cfg->mdc_offset, IO_DIR_OUTPUT);
	IO_SetDirection(cfg->mdio_offset, IO_DIR_OUTPUT);

	while(n>0)
	{
		mask = 1u<<(n-1);

		IO_Clear(cfg->mdc_offset);

		if(data & mask)
			IO_Set(cfg->mdio_offset);
		else
			IO_Clear(cfg->mdio_offset);

		IO_Set(cfg->mdc_offset);

		--n;
	}
}
예제 #9
0
파일: main.c 프로젝트: JonahLiu/ia6140
size_t FLASH_read(u32 addr, char *buf, size_t size)
{
	size_t n;
	u32 data;
	IO_Set(FLASH_CS);

	data = (0x3u<<24)|(addr&0xffffff);
	SPI_shift_out(data, 32);

	n=0;
	while(n<size)
	{
		buf[n++] = SPI_shift_in(8);
	}

	IO_Clear(FLASH_CS);
	return n;
}
예제 #10
0
파일: main.c 프로젝트: JonahLiu/ia6140
u32 SPI_shift_in(u8 n)
{
	u32 mask;
	u32 data=0;

	while(n>0)
	{
		IO_Clear(SPI_SCLK);

		mask = 1u<<(n-1);
		if(IO_Get(SPI_MISO))
			data|=mask;

		IO_Set(SPI_SCLK);

		--n;
	}
	IO_Clear(SPI_SCLK);
	return data;
}
예제 #11
0
파일: main.c 프로젝트: JonahLiu/ia6140
u32 MDIO_shift_in(PHY_cfg *cfg, u8 n)
{
	u32 mask;
	u32 data=0;

	//IO_SetDirection(cfg->mdc_offset, IO_DIR_OUTPUT);
	IO_SetDirection(cfg->mdio_offset, IO_DIR_INPUT);
	IO_Clear(cfg->mdio_offset);

	while(n>0)
	{
		IO_Clear(cfg->mdc_offset);

		mask = 1u<<(n-1);
		if(IO_Get(cfg->mdio_offset))
			data|=mask;

		IO_Set(cfg->mdc_offset);

		--n;
	}
	return data;
}
예제 #12
0
파일: main.c 프로젝트: JonahLiu/ia6140
void EnablePhy(PHY_cfg *cfg)
{
	//IO_SetDirection(cfg->reset_offset, IO_DIR_OUTPUT);
	IO_Set(cfg->reset_offset);
}
예제 #13
0
파일: io.c 프로젝트: cmonr/PAL
void IO_Disable(tPin pin)
{
    IO_Set(pin, HiZ);
}
예제 #14
0
파일: io.c 프로젝트: cmonr/PAL
void IO_Enable(tPin pin)
{
    IO_Set(pin, LOW);
}