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

Jak odłączyć przerwania od OC2 w Atmega8 ?

PiotrPitucha 26 Sty 2009 13:04 1576 19
  • #1 6056469
    PiotrPitucha
    Poziom 34  
    Witam
    Kontynuuję walkę w Atmegą8 i 4 wyświetlaczami LED, odpuściłem sobie buzer i sterowanie jasnością, nurtuje mnie problem jak odłączyć przerwania od OC2 ( noga PB.3 ), coś chyba nie działa jak powinno a moja literatura milczy na ten temat :(.
    Potrzebuję tajemniczego zaklęcia w Bascomie lub informacji które bity i w jakim rejestrze ustawić aby w końcu układ ruszył.
    Piotr
  • #2 6056487
    marek-c
    Poziom 19  
    tajemnicze zaklęcie brzmi doc2486.pdf należy go wypowiedzieć na stronie Atmela...
  • #3 6057226
    PiotrPitucha
    Poziom 34  
    Witam
    Od wczoraj je wypowiadam tylko mnie nie słucha :) , mówiąc po ludzku nie działa, mam za dużo zmiennych, po pierwsze ja mogę robić błąd, po drugie kompilator może coś źle tłumaczyć, po trzecie może się okazać że zadeklarowanie czegoś w jednym rejestrze determinowane jest deklaracją w innym.
    Akurat o uroku kompilatora trudno mi się wypowiadać bo jestem układowcem ale mój program składa się z kawałków programów z helpa i zauważyłem że kompilator conajmniej 2 razy zaprotestował, czyli w helpie są błędy.
    Pozdrawiam czekam na konkrety
  • #4 6057234
    dawid512
    Poziom 32  
    Pokaż kod bo szkoda zgadywać. Opisz dokładnie co chcesz osiągnąć.
  • #5 6057432
    mirekk36
    Poziom 42  
    PiotrPitucha napisał:
    Witam
    , po drugie kompilator może coś źle tłumaczyć, po trzecie ...

    czekam na konkrety


    Człowieku - kompilator nie może źle tłumaczyć, spójrz na swoje posty i zobacz lepiej jak ty źle tłumaczysz o co ci chodzi, podejrzewam, że sam się w tym gubisz - a poza tym oczekujesz raczej porady od wróżki, która zgadnie co masz w swoim poplątanym kodzie (help też nie ma błędów) ... i poda ci czar rodem z herego Potera, który odpali twój cudowny program

    coś czuję że za dużo ostatnimi czasy ogladasz fantasy ;)
  • #7 6057519
    mirekk36
    Poziom 42  
    Freddie Chopin napisał:
    akurat kompilatory popelniaja bledy [; to jest fakt z ktorym trzeba zyc.

    no moze nie tyle 'popelniaja bledy' co 'zawieraja bledy'.

    4\/3!!


    pewnie, że tak - ale uważasz, że po tym opisie problemu, jeśli to można nazwać w ogóle opisem , że problem leży w kompilatorze? helpie ? albo procku?
  • #9 6057755
    PiotrPitucha
    Poziom 34  
    Witam
    Widzę że wszyscy chętni do pomocy i zorientowani, 6 postów zero konkretów. Pytanie było konkretne, chcę by PB.3 by pracowało jako normalny port a wcina mi się w to PWM sądzę z timera T2.
    Config Timer0 = Timer , Prescale = 256
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Disconnect , Compare B = Disconnect , Prescale = 1
    Config Timer2 = Timer , Async = On , Prescale = 128 , Compare = Disconnect , Compare Pwm = Disconnect 


    Nie oglądam Potera mirekk36 ale akurat w helpie do Timerów jest przykład w którym parametry są źle opisane, jak spróbujesz skompilować to zobaczysz, w obsłudze timerów są też błędy które się coprawda kompilują poprawnie ale wykonują inaczej niż powinny, tu wierzę w słowo pisane z Praktycznego Elektronika gdzie zamiast Config Timer ładują bezpośrednio parametry do rejestru zaznaczając że Config Timer źle działa.
    Pozdrawiam, przeciąłem ścieżkę i podpiąłem się pod PC.2 co rozwiązuje mój problem sprzętowo ale dalej nie wiem czemu na PB.3 jest generowany sygnał.
    Dla niewierzącego mirekk36 cytat z NE6/2004
    Cytat:
    "W Bascom nie działa Config Timer1=TIMER, PRESCALE=8, Compare A =TOGGLE, działa natomiast
    TCCR1a=&B01000000
    TCCR1b=&B00001010

    Takich przykładów jest po kilka w publikowanych programach.
    Piotr
  • #10 6057996
    ZbeeGin
    Poziom 39  
    PiotrPitucha napisał:
    Nie oglądam Potera mirekk36 ale akurat w helpie do Timerów jest przykład w którym parametry są źle opisane, jak spróbujesz skompilować to zobaczysz, w obsłudze timerów są też błędy które się coprawda kompilują poprawnie ale wykonują inaczej niż powinny, tu wierzę w słowo pisane z Praktycznego Elektronika gdzie zamiast Config Timer ładują bezpośrednio parametry do rejestru zaznaczając że Config Timer źle działa.

    Jako autor polskiej wersji proszę o wskazanie gdzie kolega widzi błąd. Ja natomiast widzę błąd u Ciebie. Nie jest możliwe łączenie Compare B PWM oraz Compare B razem. To samo w TIMER2.
    Oczywiście jakby kolega do helpa zajrzał to znalazłby też opcję NO_OUTPUT, która działa także dla TIMER2 w najnowszej wersji.
  • #11 6058023
    mirekk36
    Poziom 42  
    PiotrPitucha napisał:
    Witam
    Kontynuuję walkę w Atmegą8 i 4 wyświetlaczami LED

    no dobra może i kontynuujesz a może nie kontynuujesz , skąd my to możemy wiedzieć - ale ok nie ważne

    PiotrPitucha napisał:

    , odpuściłem sobie buzer i sterowanie jasnością,

    no to kolejne zdanie niesamowicie pomocne w temacie wyjaśnienia tego o co ci chodzi - szok

    PiotrPitucha napisał:

    nurtuje mnie problem jak odłączyć przerwania od OC2 ( noga PB.3 ), coś chyba nie działa jak powinno a moja literatura milczy na ten temat :(.
    Potrzebuję tajemniczego zaklęcia w Bascomie lub informacji które bity i w jakim rejestrze ustawić aby w końcu układ ruszył.
    Piotr

    z tego natomiast zaczyna pozornie wynikać co ciebie nurtuje - czyli jak odłączyć przerwania od OC2 - pominę już dalsze wstawki o zaklęciach itp bo nie chodzi mi aby ci dokuczać

    jednak w dalszej części tej KONKRETNEJ wypowiedzi jak określiłeś piszesz, że potrzebujesz jakiejś wiedzy żeby w końcu układ ruszył ? ale jaki układ ? i co to znaczy dla ciebie aby on ruszył? to w końcu chodzi ci o odłączenie przerwania od OC2 czy może aby ruszył jakiś tajemniczy bliżej nie określony układ....

    sorry, że tak to rozpisałem na szczegóły ale weź sam to przeczytaj ze zrozumieniem i nie dziw się takim a nie innym reakcjom. Któryś kolega zauważył, że przydałoby się chociaż wklejenie kawałka kodu przez ciebie i zapytanie o fragment który nie działa - co może prędzej by naprowadziło - na to o co ci chodzi niż to coś dziwnego co jest powyżej

    z tego co piszesz też nie wynika żebyś zgodnie z helpem działał jeśli chodzi o możliwe konfiguracje Timera, poza tym przywołujesz jakieś tajemnicze cytaty z czasopism z 2004 roku, które może i miały coś na rzeczy ale w zamierzchłych czasach i najstarszych wersjach Bascoma o których najstrasi górale nie słyszeli - przypomnę że dzisiaj mamy 2009 rok - więc może na początek też sprawdź czy działasz na w miarę aktualnej wersji tegoż kompilatora i czy czytasz w miarę aktualną wersję helpa - która na dodatek jest do zdobycia w necie i to po polsku napisana zresztą dobrze przez jednego z kolegów którzy na tym forum sporo działają

    Dodano po 9 [minuty]:

    ooo proszę nawet kolega ZbeeGin (autor helpa) mnie uprzedził
  • #12 6059012
    PiotrPitucha
    Poziom 34  
    Witam
    ZbeeGen szacuneczek za tłumaczenie, ale po kolei:
    - Bascom 1.11.9.1 wersja demo
    - posługiwałem się oryginalnym helpem
    1) przykład Config Timer2=Timer ,Async=1 kompiluje się Async=ON
    2) helpa czytałem i drugie miejsce które się wykładało przy kompilacji to COMPARE A NO_OUTPUT , COMPARE A PWM NO_OUTPUT

    Dziękuję za pierwszy konkretny post w sprawie, to są dwa przykłady o których wspominałem, co do COMPARE A NO_OUTPUT , COMPARE A PWM NO_OUTPUT to wzmianka o nich występuje tylko w Config Timer1 w przypadku Timer2 help milczy.
    Masz rację, z logicznego punktu widzenia wyłączenie Compare i Compare PWM równocześnie nie ma sensu, szukałem wszystkich możliwych sposobów na wyłączenie akcji na OC2 i dopisywalem kolejne opcje z helpa.
  • #13 6059611
    zumek
    Poziom 39  
    PiotrPitucha napisał:
    ...Dziękuję za pierwszy konkretny post w sprawie ...

    No to ja dodam cos konkretnego od siebie.
    PiotrPitucha napisał:

    Dla niewierzącego mirekk36 cytat z NE6/2004
    Cytat:
    "W Bascom nie działa Config Timer1=TIMER, PRESCALE=8, Compare A =TOGGLE, działa natomiast
    TCCR1a=&B01000000
    TCCR1b=&B00001010

    Takich przykładów jest po kilka w publikowanych programach.

    Ten osobnik (może osobniczka) nie ma - a przynajmniej w 2004 nie miał(a)- zielonego pojęcia o konfigurowaniu timerów w Bascomie.Żeby wprowadzić timer w tryb , który jest pokazany w rejestrach TCCR1x, należało zapisać:
    Config Timer1=TIMER, PRESCALE=8, Compare A =TOGGLE, Clear Timer=1.Taka opcja, była już dostępna w Bascomie v 1.11.7.4 z 2003 roku, a może i we wcześniejszych.
    Wniosek dla Ciebie: nie wierz we wszystko, co wypisują o Bascomie - nawet w to, co teraz czytasz ;)
  • #14 6062688
    ZbeeGin
    Poziom 39  
    PiotrPitucha napisał:
    1) przykład Config Timer2=Timer ,Async=1 kompiluje się Async=ON

    Tak tu jest błąd, który także skopiowałem do polskiej wersji. Poprawiono.

    PiotrPitucha napisał:
    2) helpa czytałem i drugie miejsce które się wykładało przy kompilacji to COMPARE A NO_OUTPUT , COMPARE A PWM NO_OUTPUT

    Składnia (z Mojej wersji) brzmi:

    CONFIG TIMER2 = TIMER | PWM , ASYNC = ON | OFF , PRESCALE = 1 | 8 | 32 | 64 | 128 | 256 | 1024 , COMPARE [ NO_OUTPUT ] = SET | CLEAR | TOGGLE | DISCONNECT , CLEAR TIMER = 0 | 1 , PWM = ON | OFF , COMPARE PWM [ NO_OUTPUT ] = CLEAR UP | CLEAR DOWN | DISCONNECT

    Zatem nie ma tu COMPARE A i COMPARE A PWM. Fakt później w tekscie się pojawia COMPARE A [ PWM ] ale jest to wynik niedopatrzenia przy kopiowaniu fragmentów tekstu z CONFIG TIMER1; gdyż pewne opcje są zbieżne i nie warto było tłumaczyć tekst drugi raz. Poprawka już naniesiona.

    PiotrPitucha napisał:
    Dziękuję za pierwszy konkretny post w sprawie, to są dwa przykłady o których wspominałem, co do COMPARE A NO_OUTPUT , COMPARE A PWM NO_OUTPUT to wzmianka o nich występuje tylko w Config Timer1 w przypadku Timer2 help milczy.

    Niestety pewne rzeczy muszę wydobywać metodą odkrywkową, często bez pomocy "z Holandii" jak to niektórzy myślą.
    W założeniu polska wersja miała być i ma być o wiele obszerniejsza (no i ładniejsza :D ). Dlatego też pojawiają się w niej rzeczy nieudokumentowane, a przy niektórych jest dodatkowa klauzula, np. w CONFIG TIMER0, CONFIG TIMER5.
  • #15 6063840
    PiotrPitucha
    Poziom 34  
    Witam
    Dziękuję za rozjaśnienie :)
    Ponawiam pytanie czy we wcześniejszej wersji COMPARE A NO_OUTPUT i COMPARE A PWM NO_OUTPUT jest poprawnie kompilowana?, bo ta składnie nie jest tolerowana przez najnowszy pobrany kompilator, choć w helpie występuje, dla B nie próbowałem ale myślę że podobnie, jeśli masz starszy kompilator to proszę o wypróbowanie.
    Piotr
  • #16 6064173
    zumek
    Poziom 39  
    PiotrPitucha napisał:
    ...Ponawiam pytanie czy we wcześniejszej wersji COMPARE A NO_OUTPUT i COMPARE A PWM NO_OUTPUT jest poprawnie kompilowana?...

    Ta składnia jest "rozumiana" przez Bascom, od co najmniej 5 lat.
    PiotrPitucha napisał:
    ... bo ta składnie nie jest tolerowana przez najnowszy pobrany kompilator...

    A mnie się wydaje, że tylko Twoja składnia nie jest tolerowana przez Twój kompilator - użyj właściwej.
  • #17 6066105
    PiotrPitucha
    Poziom 34  
    Zumek, właściwej to znaczy jakiej?
    Jeśli kopiuję składnię z helpa to są dwie możliwości ale nie będę wywoływał wojny tylko zacytuję
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm No_output , Prescale = 1 


    i odpowiedź kompilatora
    Error: 103 Line 42 =expected [Compare A Pwm No_output ]
  • #18 6066440
    dawid512
    Poziom 32  
    Cytat:
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm No_output , Prescale = 1 


    Co ma OC2 do timera 1?
    Mega8 ma 3 kanały PWM. Dwa od timera1 oraz jeden od Timera 2. Skoro nie chcesz korzystać z OC2 to po prostu nie konfiguruj Timera 2 w tryb PWM.
  • #19 6067498
    ZbeeGin
    Poziom 39  
    PiotrPitucha napisał:
    Jeśli kopiuję składnię z helpa to są dwie możliwości ale nie będę wywoływał wojny tylko zacytuję
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm No_output , Prescale = 1 

    Niestety kolega zumek miał i ma rację z tym, że jest to Twoja składnia. A kompilator też wskazuje co jest źle: = expected i tym razem dokładnie.

    Przykro Mi, ale musisz bardziej wnikliwie przeczytać jak ma wyglądać poprawna konfiguracja TIMER1. I naprawdę wolelibyśmy abyś doszedł w czym jest błąd samodzielnie. To tylko 2 minuty na porównanie dwóch tekstów.
REKLAMA