[英]Explanation of code
我寫了這段代碼:
void NTP::setTime() {
connWithNTP();
if(!timeNTPReadyToSet) {
Serial.println("Getting time from RTC");
timeFromRTC();
if (year == 2000) {
while(dhcpTest == false && timeNTPReadyToSet == false) {
Serial.print("Kolaei apo to DHCP");
startEthernetAndUdp();
connWithNTP();
timeFromNTP();
}
}
}
else {
Serial.print("Getting time from NTP");
timeFromNTP();
}
serialPrinting();
}
根據我在一切正常時所做的操作(Internet連接正常並且NTP服務器正常工作)。 代碼將轉到else print
,這將從NTP服務器獲取時間(發生),而我的問題是它不執行serialPrinting。
此功能僅在串行監視器中打印時間。 函數timeFromNTP和timeFromRTC只是設置包含日歷和時間的變量。
我的串行監視器顯示從NTP服務器獲取時間,然后不輸出任何內容。 因為我已經在循環中設置了setTime函數,所以它只是從頭開始。
是否有可能使serialPrinting()運行? 我擔心serialPrinting這個函數在我調用setTime()時是否以兩種方式執行。
我得到這個:
0
0
0
第四台NTPServer工作
從NTP獲取時間
0
0
0
0
第四台NTPServer工作
從NTP獲取時間
零和“第四個NTPServer工作”來自connWithNTP。
好吧,除非有其他函數進入循環或再次調用setTime導致停滯,否則無法執行serialPrinting。 我有一些子功能,從這里看不到這些子功能,並且出於安全原因(現在不需要)在其中調用setTime。 所以有一個循環。 這段代碼沒有循環或內部錯誤,無法跳過serialPrinting。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.