Witam,
próbuję zaprogramować prosty zegarek na PCF8583 na płytce EvB i już na wstępie napotkałem na ścianę. Jestem początkujący - generalnie to pierwszy program w bascomie, który ma więcej niż kilkanaście linijek, więc liczę na Waszą wyrozumiałość i pomoc.
Udało mi się na podstawie przykładów z tego forum i zaczerpniętych z netu, zmusić do działania PCF - nie jest to jeszcze dokładnie to co chciałbym osiągnąć, ale póki co, podstawowa funkcjonalność działa. Kolejnym krokiem było dodanie możliwości ustawiania zegara z "klawiatury" (kilka microswitchy) i tutaj właśnie odbiłem się od ściany.
Mianowicie, układ zachowuje się całkowicie niedeterministycznie (przynajmniej takie mam wrażenie). W głównej pętli programu wyświetlam czas i oczekuję na wciśnięcie jednego z przycisków - tutaj bardzo uproszczone zachowanie bo na razie staram się rozgryźć jak do tematu podejść. W związku z tym, oczekiwane działanie poniższego kodu jest takie, że na lcd wyświetlany jest aktualny czas, jak nacisnę przycisk 1 to tryb pracy (current_mode) zmienia się na 1, wyświetlanie czasu zostaje zatrzymane, na LCD wyświetla się napis SET (tutaj w przyszłości będę próbował zaimplementować mechanizm ustawiania poszczególnych wartości czasu i daty). Z kolei po naciśnięciu drugiego przycisku, powracamy do trybu 1, znika napis SET i zegar dalej wyświetla aktualny czas (na razie nie ma funkcji zapisu bo nie było właściwego ustawiania czasu).
Niestety zachowanie jest zupełnie dla mnie niespodziewane, mianowicie jeśli już uda mi się nacisnąć pierwszy przycisk i układ zadziała tak jak bym chciał to albo nie reaguje na naciśnięcie drugiego przycisku, albo całość działa tylko jednokrotnie, a potem nie reaguje już na nic. Najczęściej jednak od początku nie reaguje w ogóle na żaden przycisk, albo napis SET pojawia się losowo i znika zupełnie bez dotykania przycisków. Byłbym wdzięczny za pomoc - pewnie rzuci Wam się w oczy jeszcze wiele innych bzdur, które tam popełniłem, więc również proszę o ich wytknięcie i zasugerowanie poprawnego sposobu.
Poniżej kod:
Próbowałem przetestować mechanizm na prostym przykładzie i tutaj działa bez zarzutów (może coś przeoczyłem). Poniższy kod, działa tak jak bym się tego spodziewał:
Bardzo proszę o pomoc.
próbuję zaprogramować prosty zegarek na PCF8583 na płytce EvB i już na wstępie napotkałem na ścianę. Jestem początkujący - generalnie to pierwszy program w bascomie, który ma więcej niż kilkanaście linijek, więc liczę na Waszą wyrozumiałość i pomoc.
Udało mi się na podstawie przykładów z tego forum i zaczerpniętych z netu, zmusić do działania PCF - nie jest to jeszcze dokładnie to co chciałbym osiągnąć, ale póki co, podstawowa funkcjonalność działa. Kolejnym krokiem było dodanie możliwości ustawiania zegara z "klawiatury" (kilka microswitchy) i tutaj właśnie odbiłem się od ściany.
Mianowicie, układ zachowuje się całkowicie niedeterministycznie (przynajmniej takie mam wrażenie). W głównej pętli programu wyświetlam czas i oczekuję na wciśnięcie jednego z przycisków - tutaj bardzo uproszczone zachowanie bo na razie staram się rozgryźć jak do tematu podejść. W związku z tym, oczekiwane działanie poniższego kodu jest takie, że na lcd wyświetlany jest aktualny czas, jak nacisnę przycisk 1 to tryb pracy (current_mode) zmienia się na 1, wyświetlanie czasu zostaje zatrzymane, na LCD wyświetla się napis SET (tutaj w przyszłości będę próbował zaimplementować mechanizm ustawiania poszczególnych wartości czasu i daty). Z kolei po naciśnięciu drugiego przycisku, powracamy do trybu 1, znika napis SET i zegar dalej wyświetla aktualny czas (na razie nie ma funkcji zapisu bo nie było właściwego ustawiania czasu).
Niestety zachowanie jest zupełnie dla mnie niespodziewane, mianowicie jeśli już uda mi się nacisnąć pierwszy przycisk i układ zadziała tak jak bym chciał to albo nie reaguje na naciśnięcie drugiego przycisku, albo całość działa tylko jednokrotnie, a potem nie reaguje już na nic. Najczęściej jednak od początku nie reaguje w ogóle na żaden przycisk, albo napis SET pojawia się losowo i znika zupełnie bez dotykania przycisków. Byłbym wdzięczny za pomoc - pewnie rzuci Wam się w oczy jeszcze wiele innych bzdur, które tam popełniłem, więc również proszę o ich wytknięcie i zasugerowanie poprawnego sposobu.
Poniżej kod:
Kod: text
Próbowałem przetestować mechanizm na prostym przykładzie i tutaj działa bez zarzutów (może coś przeoczyłem). Poniższy kod, działa tak jak bym się tego spodziewał:
Kod: text
Bardzo proszę o pomoc.
