uint32_t testSRAM(uint32_t startAddress, uint32_t size, uint16_t bufferSize) { uint16_t check; uint32_t loop; char AddressLine[24] = "Addr:xxxxxxxx : yyyyy \r\n"; PSRAM_Init(); LCD5110_Set_XY(0, 2); LCD5110_Write_String("Addr : "); for (loop = startAddress; loop < startAddress + size; loop++) { PSRAM_WriteWord((uint16_t) loop, loop); check = PSRAM_ReadWord(loop); if ((loop & 0xFFF) == 0x0) { LCD5110_Set_XY(7, 2); LCD5110_Write_Dec32(loop, 7); getHexFromLong(AddressLine + 5, loop, 8); getDecimalFromShort(AddressLine + 16, check, 5); SerialSendBytes(AddressLine, 24); } if ((uint16_t) loop != check) { WriteReadStatus++; break; } } if (WriteReadStatus == 0) { LCD5110_Set_XY(0, 2); LCD5110_Write_String("RAM Ok. "); LCD5110_Set_XY(0, 3); LCD5110_Write_String("Size :"); LCD5110_Set_XY(7, 3); LCD5110_Write_Dec(size >> 9, 4); LCD5110_Set_XY(11, 3); LCD5110_Write_String(" Ko"); } else {
int main(void) { char s[] = "1442936700,0,1,4,#2346W,3,#0800O#1900C#0900O#1800C"; // for str_processing test RCC_ClocksTypeDef RCC_Clocks; /* SysTick end of count event each 10ms */ RCC_GetClocksFreq(&RCC_Clocks); SysTick_Config(RCC_Clocks.HCLK_Frequency / 100); RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG, ENABLE); RNG_Cmd(ENABLE); /* Initialize the timer for dht11 */ tim_init(TIM2); /* Initialize the SRAM ****************************************************/ PSRAM_Init(); /* Initialize the LCD *****************************************************/ LCD_Init(); LCD_LOG_Init(); LCD_LOG_SetHeader((uint8_t*)" Ethernet test"); LCD_LOG_SetFooter ((uint8_t*)" localtime: "); /* Add your application code here */ /* Configure ethernet (GPIOs, clocks, MAC, DMA) */ ETH_BSP_Config(); /* Initilaize the LwIP stack */ LwIP_Init(); schedule_init(&schedule_got,schedule_string); // schedule string store in schedule_string DNS_Init(); //while(!schedule_got); // wait until string got LCD_DisplayStringLine(Line2, (uint8_t*)schedule_string); LCD_DisplayStringLine(Line3, (uint8_t*)"0"); /* Main Loop */ //process ste str form internet Str_Split(s, Init_time); // s is temp string RTC_Config(); Time_Date_Setting(Init_time->year, Init_time->mon, Init_time->day, Init_time->hour +3, Init_time->min, Init_time->sec); while (1) { uint8_t year, mon, day; uint8_t hour, min, sec; RTC_TimeTypeDef RTC_TimeStruct_main; RTC_DateTypeDef RTC_DateStruct_main; RTC_GetDate(RTC_Format_BIN, &RTC_DateStruct_main); RTC_GetTime(RTC_Format_BIN, &RTC_TimeStruct_main); year = RTC_DateStruct_main.RTC_Year; mon = RTC_DateStruct_main.RTC_Month; day = RTC_DateStruct_main.RTC_Date; hour = RTC_TimeStruct_main.RTC_Hours; min = RTC_TimeStruct_main.RTC_Minutes; sec = RTC_TimeStruct_main.RTC_Seconds; //detect whether it is time to turn on Motor and LED, then execute it. Soak(day, hour, min ); Water(day, hour, min, sec); Light(mon, day, hour, min); //detect over /* check if any packet received */ if (ETH_CheckFrameReceived()) { /* process received ethernet packet */ LwIP_Pkt_Handle(); } /* handle periodic timers for LwIP */ LwIP_Periodic_Handle(LocalTime); } }