2014-08-01 3 views
0

Я не понимаю, почему в моей программе некоторые строки вывода в последовательный журнал прекрасны, в то время как некоторые из них никогда не выводятся.У меня возникли проблемы с записью метки на последовательный порт

По какой-то причине одна из этикеток никогда не выписывается. Я экспериментировал со сдвигом операторов println, а затем другая метка игнорируется. Я не вижу разницы между работающими линиями и теми, которые этого не делают.

В моем файле на https://gist.github.com/ledlogic/726ec7105ee5cc41f3cd

Первые две метки работают, но не метка Latitude.

... 

    Serial.print("UTC Time(HHMMSS): "); 
    Serial.print(time); // Time returns the UTC time (GMT) in HHMMSS, 24 huor format (H-Hour; M-Minute; S-Second) 
    Serial.println(""); 
    Serial.println(""); 

    Serial.print("Latitude: "); 
    Serial.print(lat, 6); // Latitude - in DD.MMSSSS format (decimal-degrees format) (D-Degree; M-Minute; S-Second) 
    Serial.println(""); 
    Serial.println(""); 

    ... 

Выход последовательного порта монитора (9600 бод)/не приватизирован:

UTC Date(DDMMYY): 10814 

    UTC Time(HHMMSS): 131539 

    44.9***** 

    Longitude: -92.5***** 

Возможно, вы увидите, очевидно, нет-нет, я просто еще не знаю, для Arduino кода.

+0

попробуйте прокомментировать остаток. Из «File LogFile ...» и всех отпечатков после этого на задержку (1000) ;. Обратите внимание, что Serial.print заполняет буфер, а затем прерывается, чтобы отправлять байты. Я обдумываю, блокируются ли функции SD и – mpflaga

+0

Вы используете SD-карту в режиме с прерыванием? – Greycon

+0

Добавление F() вокруг серийных меток показалось им в 100% случаев. Что касается режима прерывания, я так не думаю, что все Способы SD-карты вызываются только в основном цикле, если только в SD-библиотеке это не делается самостоятельно. – ledlogic

ответ

2

Потерянные отпечатки часто вызывают нехватка ОЗУ. Особенно, если они зависят от положения. (See this here)

#include <MemoryFree.h>; 

и поместите следующее в настройках.

Я подозрительно, что dGPS.h и вместе с SD.h максимизируют вас.

+0

Это библиотека, которую вы используете - https://github.com/sudar/MemoryFree? Мой Arduino 1.5.7 не поставляется с MemoryFree, поэтому я получаю ошибку компиляции. – ledlogic

+0

Я завернул все мои метки функцией F(), и теперь я могу их увидеть. Я продолжаю получать 384 байта - я могу попробовать обрезать библиотеку GPS вниз только то, что мне нужно - у него есть некоторые дополнительные методы, которые мне не нравятся около. Благодаря!!! – ledlogic

+0

Определенно выбегает из барана. 300 при настройке. Остается мало работать, когда код начинает использовать кучу. Обратите внимание, что компиляция содержит сборку мусора для удаления неиспользуемого кода. Где глобальные переменные будут потребляться и не удаляться, если они не используются. – mpflaga

Смежные вопросы