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

Bascom - instrukcja: Config Clock i niedziałający PortC.7 w Atmega32

bipolunipol 15 Mar 2012 21:59 1922 9
REKLAMA
  • #1 10682671
    bipolunipol
    Poziom 19  
    Witam.
    Dlaczego, jeżeli użyję w programie napisanym w Bascomie instrukcji:
    Config Clock = Soft
    , port C.7 w mikroprocesorze Atmega32 nie działa [port skonfigurowany jako wyjście, nie mogę nim sterować] (inne porty działają)? Jak instrukcja zostanie usunięta, wszystko jest ok.
    Czemu tak jest?
  • REKLAMA
  • Pomocny post
    #2 10682754
    Press
    Poziom 24  
    No i słusznie. C.6 pewnie też Ci nie działa. Jak podajesz taką deklaracje to do pinów C.6 i C.7 należy podłączyć kwarc zegarkowy i zliczanie czasu masz obsługiwane automatycznie. Poczytaj HEPLa.
  • REKLAMA
  • #3 10682786
    bipolunipol
    Poziom 19  
    Portc.6 działa.

    Avr-dos pod Bascoma potrzebuje do działania konfiguracji Config Clock=Soft. Czy da się uruchomić Avrdosa i sprawić, by jednocześnie ten port działał?
  • REKLAMA
  • #4 10682800
    piotrva
    VIP Zasłużony dla elektroda
    Ponadto dodam, że po tej konfiguracji, o ile nie chcemy używać automatycznego mierzenia czasu i nie zamierzamy podpiąć kwarcu zegarkowego, to wystarczy wyzerowac odpowiedni rejestr w uC odpowiedzialny za pracę timera 2 w trybie anachronicznym i potem zatrzymać też operujac na rejestrach, ten timer. Dzięki temu możemy korzystać z pinow pc6-7 normalnie mając do dyspozycji wszystkie ułatwienia związane z czasem w Bascom.
  • REKLAMA
  • #5 10682819
    bipolunipol
    Poziom 19  
    piotrva napisał:
    i potem zatrzymać też operujac na rejestrach, ten timer


    A czy można owy timer[2] wykorzystać do odbioru kodów w standardzie RC5, bowiem inne liczniki mam zajęte? czy raczej będzie to utrudnione?
  • Pomocny post
    #6 10682863
    piotrva
    VIP Zasłużony dla elektroda
    Tym razem odpowiedź brzmi nie - jedyne co możemy odzyskać przy tym zegarze to kontrolę nad pinami - jakiekolwiek uruchomienie timera2 spowoduje wariowanie czasu i AVR-dosa. Timer poza tym też nie będzie pracował normalnie bo soft clock będzie w nim mieszał
  • #7 10682889
    bipolunipol
    Poziom 19  
    piotrva napisał:
    to wystarczy wyzerowac odpowiedni rejestr w uC odpowiedzialny za pracę timera 2

    chodzi o rejestr TCNT2?

    Dodano po 2 [minuty]:

    i bit: Bit 3 – AS2: Asynchronous Timer/Counter2 ->wyzerować oraz Bit 0 – TCR2UB ?

    Dodano po 10 [minuty]:

    Press napisał:
    No i słusznie. C.6 pewnie też Ci nie działa

    bipolunipol napisał:
    Portc.6 działa.


    Tak, nie działa Portc.6 oraz 7 - czyli Tosc1 i Tosc2 - wcześniej pisząc że działa, zrobiłem błąd.

    Dodano po 29 [minuty]:

    Wpisałem nowe wartości do rejestru, jednak dalej jest to samo...
  • Pomocny post
    #9 10683768
    piotrva
    VIP Zasłużony dla elektroda
    Ja używam takich kodów do odblokowania tych pinów, zaraz po instrukcji konfiguracji zegara programowego:
    
    'odblokowanie pinów PC6 i 7 dla procesorów atmega16/32:
    Tccr2 = 0
    Assr = 0
    Timsk = 0
    Tifr = 0
    

    Oczywiście wszelkie dalsze konfiguracje innych timerów powinny znaleźć się po tym kawałku kodu.
  • #10 10685440
    bipolunipol
    Poziom 19  
    piotrva napisał:
    Ja używam takich kodów do odblokowania tych pinów, zaraz po instrukcji konfiguracji zegara programowego:


    Dziękuję za kod. Wstawiłem i już można sterować portami. Zobaczę, czy nie wystąpią komplikacje.
REKLAMA