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

Program do płytki testowej avt3500

mateuszrjzr 16 Gru 2011 21:10 1465 14
  • #1 10268201
    mateuszrjzr
    Poziom 17  
    witam
    Napisałem przed chwilą program do tej płytki testowej, i nie wiem, czy jest on dobrze, ale pewnie nie. Chciałem, aby po kolei co 2 sekundy na każdym wyświetlaczu pojawiało się po jednym segmencie cyfry. Problem jest taki, że nie wiem, jak równocześnie włączyc piny D od 2 do 5, włączać cyfry po kolei, czyli port B od 0 do 7. To co zdążyłem napisać :

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #2 10271259
    Krauser
    Poziom 26  
    Wyjścia to rejestr Portb, wiec do ustawiania wyjść nie używaj Pinb.x (set Pinb.1 to to samo co Pinb.1 = 1 i nie ustawia stanu na wyjściu). Ustawić tylko część wyjść portu można używając maskowania PORTB = PORTB OR 0B00001111, a zeruje się PORTB = PORTB AND 0B11110000. Możesz przejrzeć dobrze skomentowane przykłady do tej płytki.
  • #3 10272428
    mateuszrjzr
    Poziom 17  
    dzięki krauser- tego szukałem :D, niemniej jednak przy kompilowaniu programu pojawia mi się taki błąd:



    Program do płytki testowej avt3500
  • Pomocny post
    #4 10273367
    Krauser
    Poziom 26  
    Zmień na Compare1a. Attiny2313 to ulepszony at90s2313 co można zobaczyć porównując chociażby "pinologię"
  • #5 10273502
    mateuszrjzr
    Poziom 17  
    witam
    zmieniłem na attiny2313 i nadal nic, co to znaczy compare1a??

    Dodano po 4 [minuty]:

    jak się ustawia typ procesora i czętotliwość, to już nie trzeba piasć $regfile = "attiny2313.dat" $crystal = 4000000? to na ile mam ustawić taktowanie w tym przypadku?? poza tym tu jest kwarc zewnętrzny, to chyba trzema zmienić fusebity.
  • #6 10273576
    sp3ots
    Poziom 38  
    Witam !
    Pokaż cały kod w którym pojawił się błąd.
    Pozdrawiam. Stefan
  • #7 10273900
    mateuszrjzr
    Poziom 17  
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #8 10274350
    sp3ots
    Poziom 38  
    Zamień linię:
    On Compare1 Przerwanie
    na:
    On Compare1a Przerwanie
  • #9 10274686
    mateuszrjzr
    Poziom 17  
    dzięki sp3ots, daje pomógł, i krauserowi też, bo mimo że na początku nie zrozumiałem, to też pomógł :D

    Dodano po 9 [minuty]:

    a wracając do mojego przykładu, to co powinienem zmienić?
  • #10 10274887
    Krauser
    Poziom 26  
    Całość spokojnie może pracować na wewnętrznym taktowaniu procesora, które ustalane jest przez producenta na 1MHz. Deklarowanie wartości taktowania jest potrzebne dla funkcji wait waitms i waitus, bo na podstawie niej kompilator dobiera ile taktów ma zająć opóźnienie. Jedynie dla timerów należy wziąć pod uwagę , że taktowanie jest 4 razy wolniejsze.
  • #11 10279044
    mateuszrjzr
    Poziom 17  
    witam
    Program testowy odpaliłem, ale co jest nie tak z moim??
  • #12 10280533
    Krauser
    Poziom 26  
    Proponuje takie poprawki
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #13 10285858
    mateuszrjzr
    Poziom 17  
    Witam
    Zmieniłem kod na taki, ale mimo to wyświetlacz nie chce działać, ponieważ zaczyna on odliczać bez wciśniętego guzika.
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #14 10286038
    sp3ots
    Poziom 38  
    Witam !
    Opanuj najpierw obsługę przycisków, np. jeden przycisk, jeden LED.
    Zastanów się nad tą linią:
    If Portd.0 = 1 Then
    Pozdrawiam. Stefan
  • #15 10287322
    Krauser
    Poziom 26  
    Rozpocznij program z wciśniętym przyciskiem
REKLAMA