• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zmniejszenie rozmiaru projektu
#9
(04-09-2018, 16:48)ArduinoNewbie napisał(a): Projekt mieści się na Atmedze 328
W pamięci programu tak bo nie widzę obsługi błędów. Zewrzyj 1-Wire do masy, jaki jest rezultat? To samo z I2C, co się dzieje? Odłącz termometry, jaka temperatura się wyświetla? Czy nie powinien to być komunikat o braku czujnika a nie kosmiczna temperatura?
Czy nie uważasz, ze dobrze napisany program powinien reagować na błędy? Czy nie powinien mieć włączonego watchdoga? Czy nie powinien, jeśli jest taka możliwość, wysyłać informacji diagnostycznych na np USART (przykładowo o resecie uC i przyczynie resetu, o wykryciu bądź nie wyświetlacza). Czy zamiast delay 5 sekund uC nie powinien być usypiany aby pobierać mniej energii i generować mniejsze zakłócenia EMI?

Już na początku kodu masz wpadkę:
Kod:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Nie sprawdzasz czy wyświetlacz został wykryty tylko zaraz po inicjalizacji
Kod:
display.clearDisplay();
display.drawBitmap(0, 0, logo, 128, 64, 1);
display.display();
Dlaczego zakładasz, że wyświetlacz NA PEWNO JEST podłączony? W czasie działania programu także powinieneś to sprawdzać i w razie czego sygnalizować błędy.
Zrób tez mały eksperyment, odłącz rezystory podciągające I2C. Jak zachowa się program? Na 99% zawiśnie. Czy tak powinno być?
nie pamiętam czy SSD1306 może zablokować w pewnych sytuacjach I2C ale NA PEWNO, nie masz mechanizmu, który w takiej sytuacji "ożywia" magistralę. Program zawiśnie i reset nie pomoże (przynajmniej nie jeden), trzeba będzie odłączyć zasilanie jak w Windows. Chcesz robić konkurencję firmie Micro$oft?

Jestem przekonany, że gdy napiszesz ten program "po bożemu" to zacznie brakować pamięci programu.
Jestem także przekonany, że w kilka sekund potrafię program w postaci w jakiej teraz jest doprowadzić do nieprzewidywalnego zachowania (nieprawdziwe temperatury, zawieszanie).


Sprawdź też ile tak naprawdę masz wolnej pamięci RAM.


PS
Gdyby to była praca końcowa w technikum, to za taki program, ocena dopuszczająca z dwoma minusami. A wystarczy poświęcić jeden czy dwa dni aby było 4..5.
 
Odpowiedź
  


Wiadomości w tym wątku
Zmniejszenie rozmiaru projektu - przez ArduinoNewbie - 03-09-2018, 18:52
RE: Zmniejszenie rozmiaru projektu - przez kaczakat - 03-09-2018, 20:47
RE: Zmniejszenie rozmiaru projektu - przez es2 - 03-09-2018, 21:26
RE: Zmniejszenie rozmiaru projektu - przez es2 - 04-09-2018, 08:52
RE: Zmniejszenie rozmiaru projektu - przez kaczakat - 04-09-2018, 14:29
RE: Zmniejszenie rozmiaru projektu - przez es2 - 04-09-2018, 17:48

Skocz do:


Przeglądający: 1 gości