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

ATtiny 2313 - Dekadowy licznik rewersyjny nie reaguje na przyciski

Jawarider 22 Lis 2015 22:54 2280 36
  • #1 15175850
    Jawarider
    Poziom 12  
    Witam,

    przerabiam ćwiczenia z książki "Mikrokontrolery dla początkujących" i natknąłem się na problem z kolejnym z ćwiczeń. Poniższy program w zamyśle jest dekadowym licznikiem rewersyjnym. Niestety po załadowaniu nie działa. Brak reakcji na sygnał wejściowy z przycisków. Procesor ATtiny 2313 na płytce testowej AVT. Z góry dziękuję za pomoc w znalezieniu przyczyny. Poniżej listing:

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #2 15176347
    yokoon
    Poziom 29  
    A gdzie masz ustawione deklaracje ?

    $regfile = "attiny2313.dat"
    $crystal = xxxxxxxxxx
  • #3 15176498
    Jawarider
    Poziom 12  
    A za co odpowiadają te komendy - do tej pory ich nie wykorzystywałem.
  • #4 15176539
    yokoon
    Poziom 29  
    Pierwsza mówi o typie mikrokontrolera, druga o częstotliwości taktowania procka.
    Np:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Wstaw to na początku programu, jeżeli jest to nowy procek (nie przestawiano fuse bitów) to częstotliwość taktowania jest ustawiona na 1000000Hz.
  • #5 15176728
    Jawarider
    Poziom 12  
    Ok spróbuję, ale zastanawia mnie fakt, że w poprzednich ćwiczeniach nie było takiej konieczności. No ale jeszcze mam duże braki w wiedzy...

    Tak jeszcze informacyjnie.
    W bascomie tylko kompiluję program, a programuję przez AVR studio i tam jest wybrany typ procesora. Procek taktowany jest zewnętrznym kwarcem 4 kHz.
  • #6 15177040
    yokoon
    Poziom 29  
    Nie rozumiem jak można pisać w AVR Studio (język C) a kompilować w Bascom'ie.
    Przecież to dwa różne języki programowania.
    Przykład w wątku #1 to Bascom. skoro chcesz kompilować w Bascom'ie to i pisz program w tym języku.
  • #7 15177102
    Jawarider
    Poziom 12  
    Ok. Piszę i kompiluję w Bascom AVR, przy czym AVR studio umożliwia podłączenie zewnętrznego kompilatora w celu przesłania kodu po ISP do procka. Takie rozwiązanie zostało zaproponowane w instrukcji płtyki testowej od AVT. Powodem jest chyba brak obsługi Attiny2313 przez starsze wersje Bascom AVR.
    Także listing, który załączyłem jest w Bascom.
  • #8 15177337
    yokoon
    Poziom 29  
    Wszystko to robi Bascom i nie ma potrzeby mieszać w to AVR Studio.
  • #9 15177470
    Konto nie istnieje
    Poziom 1  
  • #10 15177519
    Jawarider
    Poziom 12  
    Do tej pory wszystkie programy - nawet te gdzie używana była instrukcja waitms działały. Również z instrukcją Debounce problemów nie było. Mam wrażenie, że od momentu rozbudowy o instrukcję lookup zaczęły się problemy.

    Spróbuję dodać te dwie dyrektywy i zobaczę.

    Dziękuję za porady.

    Pozdrawiam Robert.
  • #11 15177676
    Konto nie istnieje
    Konto nie istnieje  
  • #12 15178962
    Jawarider
    Poziom 12  
    Programator STK 500. Do płytki w tym momencie nie jest nic podłączone.

    Próbuję skonfigurować ten programator w basco'mie, ale podczas próby wgrania programu otrzymuję komunikat: Detected micro does not match selected micro Attiny2313A.
  • #13 15179171
    Konto nie istnieje
    Konto nie istnieje  
  • #14 15181696
    Jawarider
    Poziom 12  
    Niestety ten sam komunikat.
  • #15 15181715
    Konto nie istnieje
    Konto nie istnieje  
  • #16 15181742
    Jawarider
    Poziom 12  
    Przez AVR studio program jest wgrywany, ale działa nieprawidłowo. Wyświetla kilka znaków, ale nie są to cyfry z zakresu 0 - 9 i w dół 9-0, a taki jest zamysł.
  • #17 15181769
    Konto nie istnieje
    Konto nie istnieje  
  • #18 15181799
    Jawarider
    Poziom 12  
    Ok pomijając programator. Program działa prawidłowo bez instrukcji lookup. Ale składnia jest prawidłowa - wartości do przepisania też.
  • #19 15181842
    Konto nie istnieje
    Konto nie istnieje  
  • #20 15182777
    Konto nie istnieje
    Poziom 1  
  • #21 15183011
    Jawarider
    Poziom 12  
    Dziękuję wszystkim za sugestie i zainteresowanie. Faktycznie kopiuję kod z notatnika i być może wprowadzam w ten sposób jakiś obcy zak lub format. Spawdzę wszystko wieczorem i dam znać.

    Pozdro.
    Robert
  • #22 15185439
    Jawarider
    Poziom 12  
    Zrobiłem test zgodnie z zaleceniem i wyświetlacz zwraca poprawne cyfry. Wpisałem kod ręcznie i mimo to nie działa. Coś nie tak musi być w tym kodzie, ale nie mam już pomysłów co...
    Ćwiczę dalej może kiedyś się wyjaśni.
  • #23 15185806
    Konto nie istnieje
    Poziom 1  
  • #24 15186199
    Jawarider
    Poziom 12  
    ok wieczorkiem wrzucę screen'y. Myślałem jeszcze o jednej możliwości. Na początku deklaraowana jest zawartość EEDR = 0 żeby od razu wyświetlić wartość. Czy może zaistnieć sytuacja, że ten rejestr nie zostaje wyzerowany tylko jest w nim jakaś liczba nie z przedziału 0-9 co oznaczałoby, że trzeba przeklikać przyciskiem aż do momentu natrafienia na właściwe wartości?
  • #25 15186216
    Konto nie istnieje
    Konto nie istnieje  
  • #26 15186492
    Jawarider
    Poziom 12  
    Posiadam zainstalowany Bascom-AVR 2.0.7.5

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Czy te dyrektywy są niezbędne do poprawnego działania, czy zależy to od wersii procesora lub wersii kompilatora. W książce nie ma ani słowa na ich temat, ani nie są wykorzystywane. (Chyba, że będą w bardziej zaawansowanych programach).
  • Pomocny post
    #27 15186524
    Konto nie istnieje
    Konto nie istnieje  
  • #28 15190598
    Jawarider
    Poziom 12  
    W symulatorze działa. Po wgraniu do procka wyświetlacz milczy. Załączam screen z sim'a (Uprościłem kod do zliczania w górę).

    Co może być przyczyną, że na żywo nie chodzi...? ATtiny 2313 - Dekadowy licznik rewersyjny nie reaguje na przyciski
  • #29 15190644
    Konto nie istnieje
    Konto nie istnieje  
  • #30 15190689
    Jawarider
    Poziom 12  
    Dokładnie, wyświetlacze pracują. Włącza się je tranzystorami. Na wszystkich dotychczasowych programach działały. Sim został usunięty przed kompilacją.
REKLAMA