duemilanove + lcd1602+sd не могу писать лог на sd, виснет
- Войдите на сайт для отправки комментариев
Втр, 21/02/2017 - 19:37
Без библиотеки SD, все работает стабильно. Без SD скетч занимает ~16кБ флеш и 250Б ОЗУ. С SD ~24кБ флеш и 1100Б ОЗУ
У вашей борды 1к памяти, если не ошибаюсь, вот и виснет
2к
ОЗУ
http://arduino.ru/Hardware/ArduinoBoardDuemilanove
и дальше
У меня борда на 328 камне. Неужели 900б под стек не хватает? Как можно в этом точно убедится? Борду заменить пока не могу. Тут во время оптимизации и поиска решений еще вылезли не понятные косяки: Свой код начал писать и компилировать под Ардуино 1.5.4 и когда столкнулся с проблемой SD карты, нашел в сети библиотеку PetitFS, но она работает с Ардуино 1.6 и выше. Скачал 1.6.13 пришлось немного править код под нее т.к. ругалась на типы переменных хотя 1.5.4 молча все проглатывала в итоге с библиотекой PetitFS не смог даже инициализировать SD пока не знаю почему но один и тот же код обновления дисплея - версия 1.6.13 и выше(пробовал 1.8) не выводит букву М. Что за хрень???
void lcdUpdate(){ char sym=140; char pump[3]; lcd.clear(); lcd.print("Tc"); lcd.print(Tdef); lcd.print("М"); lcd.print(PWR); lcd.print("P"); sprintf ( pump, "%03i", Pk); lcd.print(pump); lcd.setCursor(15,0); if (KlapanON) {lcd.write(sym);}//печатаем прямоугольник lcd.print(" "); lcd.setCursor(0,1); lcd.print("T"); lcd.print(Tkub); lcd.setCursor(5,1); if (RazogrevON) {lcd.print("R");} if (TeloON) {lcd.print("T");}// if (GolovyON) {lcd.print("G");} if (Distilir) {lcd.print("D");} if (Stab) {lcd.print("S");} lcd.print(" "); lcd.setCursor(6,1); lcd.print(cnt_Klapan); if (_hH<10){ lcd.print("0"); lcd.print(_hH); } else{ lcd.print(_hH); } if (_mM<10){ lcd.print(":0"); lcd.print(_mM); } else{ lcd.print(":"); lcd.print(_mM); } if (_sS<10){ lcd.print(":0"); lcd.print(_sS); } else{ lcd.print(":"); lcd.print(_sS); } }Нашел решение, добавил ОЗУ.
Нашел решение, добавил ОЗУ.
добавил через Serial )).