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); } } }
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); }
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); } }
//********************************************************* 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(); }
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); }
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); }
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; }
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; } }
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; }
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; }
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; }
void EnablePhy(PHY_cfg *cfg) { //IO_SetDirection(cfg->reset_offset, IO_DIR_OUTPUT); IO_Set(cfg->reset_offset); }
void IO_Disable(tPin pin) { IO_Set(pin, HiZ); }
void IO_Enable(tPin pin) { IO_Set(pin, LOW); }