Elektroda.pl
Elektroda.pl
X
Mitronik
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Bascom][Atmega328] błąd wyświetlania na LCD

maximus22_kr 05 Lut 2012 00:13 2133 3
  • #1 05 Lut 2012 00:13
    maximus22_kr
    Poziom 18  

    Witam
    Wykorzystałem kod Kolegi Duch do pokazywania kierunków zmian temperatury - tzw. "strzałki"

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Pomiar jest włączany przez Timer2 co 10 sekund ( w sumie 4 x DS18B20 ). Niestety po kilku pomiarach z LCD wszystko znika, zostaje podświetlanie. Co ciekawe program dalej pracuje ( mimo braku wyświetlania na LCD ) i dokonuje zapisu na SD ( sprawdzałem wpisy, są prawidłowe ). Dodatkowo świecą się linie LCD - pierwsza i trzecia. LCD 4*20, Flash 50%

    Dodatkowo opcja "Show Result" pokazuje dla linii:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    "Source string could be too big to fit into target string"



    Przy kodzie bez obsługi "strzałek" wszytko jest OK
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    W przyszłości, proszę używać tagów SYNTAX - poprawiłem.
    [zumek]

    0 3
  • Mitronik
  • #2 05 Lut 2012 15:40
    arktik1
    Poziom 27  

    Wklej kompletny kod, łącznie z deklaracjami portów i Uc.

    0
  • Mitronik
  • #3 05 Lut 2012 23:44
    maximus22_kr
    Poziom 18  

    Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany plik

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • #4 08 Lut 2012 23:26
    WOBI
    Poziom 19  

    Nadpisujesz gdzieś w pamięci ram procesora dane i dlatego program leci w krzaki z LCD, informacja "Source string could be too big to fit into target string" świadczy że do stringa wpakowujesz więcej niż 6 znaków które zdefiniowałeś, bascom nie ma zabezpieczeń i jak zniszczysz (wpiszesz więcej znaków niż zdefiniowałeś) to właśnie dzieją sie takie cuda :)

    Code:
    Dim Ss1 As String * 6

    zwiększ do 7 lub 8 i zobacz co będzie, nie powinno już nic znikać ale będą nadpisywać się znaki na LCD bo masz źle rozwiązane pozycjonowanie, przykład ByDuch nie jest najlepszym i dużo jest postów powołujących się na ten projekt z samymi problemami. Poczytaj ten wątek Link i pomyśl jak rozwiązać pozycjonowanie

    podpowiem z formatowaniem
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0