代码说明

时间:2013-02-22 11:02:51

标签: c++ eclipse optimization arduino

我写了这段代码:

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();
}

根据我在一切正常时所做的事情(互联网连接正常且NTP服务器正常工作)。代码将转到else print,它将从NTP服务器获取时间(发生这种情况),我的问题是它不执行serialPrinting。

此功能只在串行监视器中打印时间。函数timeFromNTP和timeFromRTC只是设置包含日历和时间的变量。

我的串行监视器打印从NTP服务器获取时间,然后它不打印任何内容。它只是从头开始,因为我已经在循环中设置了这个setTime函数。

是否可以运行serialPrinting()?当我调用setTime()时,我担心serialPrinting是否会以任何一种方式执行。

我明白了:

  

0

     

0

     

0

     

第4个NTPServer工作

     

从NTP获取时间

     

0

     

0

     

0

     

0

     

第4个NTPServer工作

     

从NTP获取时间

零和“第四个NTPServer工作”来自connWithNTP。

1 个答案:

答案 0 :(得分:0)

好吧,没有办法执行serialPrinting,除非其他任何函数再次调用setTime进入循环或卡住。我有一些从这里无法看到的子功能,他们出于安全原因调用setTime(现在不需要)。所以有一个循环。没有循环或内部错误的代码无法跳过serialPrinting。