logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[BascomAvr] Problemy z RTC PCF8563 i funkcją CLS

jacynka84 01 Cze 2009 20:16 2629 13
REKLAMA
  • #1 6604290
    jacynka84
    Poziom 26  
    Witam, otóż niedawno PCF8563 jeszcze chodził normalnie , podawał prawidłowo czas i datę, ale od wczoraj, po ponownym zaprogramowaniu danych startowych zaczął się późnić , o dobre pół godziny/dobę.
    Wszystko podłączone podręcznikowo jak w notach kat..
    A wcześniej nie miał takich problemów.

    Moje drugie pytanie dotyczy bascomowej funkcji Cls - czyli czyszczenie ekranu.
    Jak wiemy np. po wyświetleniu obrazka, lub jego zmianie na ekranie , należy użyć polecenia Cls, bo inaczej robi się syf na LCD, bo CGRAM nie zostaje czyszczony.
    A jak jej używamy np 10x / sek to mamy efekt mrugania i poważnego nieznośnego "klatkowania" i zaciemniania zawartości.
    Próbowałem zastępować zawartość "pustym" obrazkiem, lub zapisywać wszystko spacjami, ale efekty jeszcze gorsze od samego CLS...
    Czy jest na to jakaś rada?
  • REKLAMA
  • #2 6604352
    piotr5000
    Poziom 21  
    Są dwie możliwości :

    1 - skasować zawartość , wyświetlić , odczekać około 0,5...2 sekund i ponowić cykl
    2 -tak sformatować dane do wyświetlania aby miały zawsze tą samą długość , nie musisz kasować starych danych a tylko nadpisywać nowe
  • #3 6604392
    jacekk232
    Poziom 17  
    Do nadpisywania tekstu na wyświetlaczu możesz użyć polecenia LOCATE.
  • REKLAMA
  • #4 6604778
    jacynka84
    Poziom 26  
    Cytat:
    Do nadpisywania tekstu na wyświetlaczu możesz użyć polecenia LOCATE.

    No przepraszam, ale to rada na poziomie "captain Obvious"...
    Ale dzięki za dobre chęci.

    No i już pisałem że próbowałem nadpisywać spacjami cały lub część zawartości spacjami za pomocą "Locate x,y :Lcd" " ".
    Na tekst działa rzecz jasna, ale na obrazki, linie i inne grafiki nie działa za grosz.
    Może jeszcze spróbuję własnej metody na czyszczenie ekranu za pomocą ustawienia na porcie sterowania odpowiedniego stanu.
    Próbowałem resetować LCD za pomocą Reset Portx.x z pinem resetu, ale jest jeszcze gorzej, niż z Cls.
  • REKLAMA
  • #5 6604916
    janbernat
    Poziom 38  
    Ad1-PCF ma podtrzymanie bateryjne?
    A może z kondensatora 1F?
    Bo może z końcówki 7 wystawia CLOCKOUT-wtedy żre dużo prądu i może "gubić" czas.
  • #6 6605143
    jacynka84
    Poziom 26  
    Owszem , podtrzymanie na bateryjce 3V przez diody.
    I nie majstrowałem przy ClockOut, jak to zablokować?
    Na chwilę obecną działa niby dobrze. Zaprogramowałem go jakieś 8 godzin temu.
    zobaczymy co za efekty będą jutro.
  • REKLAMA
  • #7 6605210
    janbernat
    Poziom 38  
    Nie pamiętam już dokładnie, ale to zwierzę "PCF8563 " czasami miało ClockOut ustawione fabrycznie(może przypadkowo?).
    Trzeba było w serwisie instrukcje pisać żeby włożyć baterię po uruchomieniu płyty-bo się rozładowywała.
  • #8 6656909
    jacynka84
    Poziom 26  
    no dobra, RTC wygląda na stabilny, +/- 1-2 minuty spóźnienia / tydzień.

    Teraz ten nieszczęsny LCD.

    Pytanie jest proste , czy da się jakoś programowo lub może nawet sprzętowo czyścić ekran bez używania normalnej funkcji "Cls" ??
    Te Cls robione 10 razy na sekundę powodują miganie ekranu, i przyciemnianie LCD, co jest skrajnie uciążliwe i bezużyteczne.
    Za skuteczny sposób odświeżania bez efektów ubocznych oddam 150pkt.
    Pozdrawiam.
  • #9 6657228
    janbernat
    Poziom 38  
    Sprzętowo/programowo.
    Na ds1307 robię to tak:
    Ustawiam w RTC clockout co 1s.
    PCF8563 też ma taką możliwość.
    Jeden z pinów procesora "poświęcam" jako wejście.
    Do tego wejścia wprowadzam clockout z RTC.
    W pętli głównej programu sprawdzam stan tego wejścia.
    I wtedy odczytuję czas.
    Miga co 1s-tak ma mieć(u mnie).
    Program jest taki bo uparłem się żeby całe ustawianie czasu i daty było jednym przyciskiem i bez wait.
    Jeszcze do końca nie dotarłem.
    Ale działa.

    Dodano po 1 [minuty]:

    A cls jest co 1s-w moim programie.
  • #10 6657482
    jacynka84
    Poziom 26  
    Co 1s? No mi chodziło żeby odświeżać zawartość na bieżąco , jak np 10/sek, niezależnie od programu w uP.
    Poza tym już pisałem że samo "Cls" nie działa jak trzeba.

    Chodzi o to że jak czegoś nie ma wg. programu na Lcd, to on nie kasuje samoistnie tego czego ma nie być, lecz trzeba mu kazać to wyczyścić za pomocą Cls, wg. mnie to ewidentny błąd bascoma, jest niedoskonały - przyznaję.
    A co jeśli by fizycznie zewrzeć pin zasilania RAM'u na LCD z masą przez rezystor? Zawartość się skasuje?
    Na płycie LCD jest układ LY62256, to RAM rzecz jasna.
  • #11 6657488
    dawid512
    Poziom 32  
    Wykorzystaj timer do odliczania krótkich odcinków czasu. W przerwaniu ustawiaj flagę a w pętli głównej zrób odpowiedni warunek. Mam nadzieję że chodzi Ci o wyświetlacz graficzny.
  • #12 6658373
    jacynka84
    Poziom 26  
    Super, zapomniałem dodać ze chodzi o 240x128 T6963c...
    Próbowałem już timerem wywoływać funkcję Cls 10-15/sek, ale nic z tego. Miga, do tego częstotliwość odświeżania własnego w LCD i cls co 1/10 sek sprawiały ze miałem efekt klatkowania jak bym filmował monitor komputerowy.
  • #13 6658565
    janbernat
    Poziom 38  
    A w tytule postu stoi jak byk:
    RTC PCF8563.
  • #14 6658664
    jacynka84
    Poziom 26  
    O co ci chodzi Janbernat?
    W tym poście mi chodzi o funkcję czyszczenia ekranu z 10/sek, z RTC już sobie poradziłem.
    RTC nie ma w moim temacie nic wspólnego z rozkminianiem "Cls".
    Czytałem tego datasheet'a od T6963c, ale najwyraźniej bascom ignoruje komendy takie jak "Set Portd.x" jeśli jest do niego podłączony i skonfigurowany LCD.
REKLAMA