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

[bascom] program do liczenia

02 Gru 2019 22:52 330 5
  • Poziom 11  
    Witam,
    potrzebuję zrobić "prosty" programik w bascomie liczący ilość kliknięć switcha.
    Układ ma dwa przyciski. Jeden ma dodawać +1 do całości, drugi musi odejmować -1 od całości. Zakres 0 - 99. Wszystko chcę by było wyświetlana na wyświetlaczu 7segmentowym na dwóch cyfrach. Na schemacie nie ma podłączonych pinów ponieważ nie wiem czy warto wstawić jakiś driver czy podłączyć bezpośrednio przez rezystory z uC.
    [bascom] program do liczenia
    Czy znajdę jakąś pomocną dłoń? Z góry dziękuję.
  • Pomocny post
    Poziom 16  
    Możesz podłączyć poprzez rezystory bezpośrednio do portów, tylko trzeba pamiętać, że diody mogą wziąć 20mA i to teoretycznie pin ma wytrzymać, ale też chyba nie można brać więcej niż 100mA na cały port. To tyle teorii a w praktyce to sam sprawdzisz i pewnie procek to zniesie.

    Wprowadziłbym jednak pewna optymalizację. Wyświetlacze podłącz do portów PB i PD tak żeby w każdym z portów numeracja pin portu do pin wyświetlacza było takie same (czyli będziesz musiał wykorzystać też jeden pin dedykowany kwarcowi). Przyciski przenieś na PORTC.
    W ten sposób będzie można napisać jedną tablicę znaków i jedną wspólną funkcję ładującą znaki do portów. Potem to pięć minut pisania.

    Np. poniżej masz program do poniższego schematu. Przetestowany w symulatorze :D

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    [bascom] program do liczenia
  • Poziom 11  
    Super. Wielkie dzięki. Nie spodziewałem się tak szybkiej pomocy. Będę chciał dziś wieczorem przetestować programik i dam znać. Oczywiście nie mam nic przeciwko optymalizacji i dostosuje się do niej :)
    Podoba mi się twoje koncepcja. Jeżeli mogę dopytać. Większość postów które czytałem związane były z multipleksowaniem, czyli wyświetlanie liczb przez szybkie przełączanie zasilania. Tak szybko by ludzkie oko nie wyłapało tych przerw. Wobec tego która z metod jest lepsza, łatwiejsza?
  • Poziom 16  
    To jest wszystko kwestia potrzeb i założeń projektowych. Ty napisałeś, że układ ma być "prosty" i nic więcej nie potrzeba. Piny można było policzyć na palcach więc zaparzyłem kawę i zanim kubek wystygnął to miałem to napisane, narysowany schemat i przetestowane w symulatorze.
    Multipleksowanie pozwala na sterowanie większą ilością takich wyświetlaczy. Przed sobą mam urządzenie w którym jest ich jedenaście. Przyjmuje się, że na każdy wyświetlacz potrzebujesz 50Hz+ więc na jedenaście to jest 550Hz. Ustawiłem 1kHz i świecą elegancko a procesor robi jeszcze duuuużo innych rzeczy.
    Najgorsze jest jak apetyt rośnie w miarę jedzenia i nie założysz od razu wszystkich potrzebnych funkcji tylko potem dokładasz.
    Gdyby okazało się że teraz dopiero chcesz program rozbudowywać to znaczy, że straciłem niepotrzebnie czas bo program powinien wyglądać wtedy od razu inaczej :D

    Co do tego która metoda łatwiejsza - zależy od umiejętności. Jeśli rozumiesz jak co ma działać i potrafisz skonfigurować Timer to różnicy nie ma :D
    Jeśli potrzebowałbyś piny procesora do innych zadań to multipleksowanie zaoszczędziłoby tutaj pieć pinów.
  • Poziom 11  
    Rozumiem ;). Hehe widzę rytuał z kawą od lat bez zmian ;) Programik na tym etapie się zatrzymuje także spokoknie. Nic nie idzie na marne.
  • Pomocny post
    Poziom 16  
    Wtedy odpisałem o 4:40 to znaczy że pewnie kawę robiłem o 4:00 :D
    Nie piję gorącej kawy jak inni, czekam aż ochłodnie :D no i wtedy odpowiadam na emaile, przeglądam Elektrodę i inne fora ahahahaha :D

    Skądinąd wiem, że wczoraj miała być podjęta próba uruchomienia "tego czegoś" :D
    Daj na koniec jakąś fotę jak to działa :D

    Możemy dopisać warunek, że jak wynik gości jest większy niż wynik gospodarzy to będziemy Im po cichu co minutę odejmować :P ahahahahahaha<rotfl>