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

Zatrzymanie Timer1 [atmega128][winAvr]

AVRowiec 24 Lut 2010 18:19 1111 5
REKLAMA
  • #1 7744728
    AVRowiec
    Poziom 18  
    Chciałbym zatrzymać prace timera1 w m128.
    Który rejestr za to odpowiada?

    Raczej nic z tego poniżej się nie nadaje do modyfikacji: ;/
     // TIMER1  
    #define TIMER1_W_PRZERWANIU TIMSK |= _BV(TOIE1); //  włącz obsługę przerwań dla T/C1 (Timer/Counter1), czyli że timer będzie pracował w przerwaniu a nie w mainie
    #define TIMER1_CZASOMIERZEM TCCR1A = 0x00;       // określa czym ma być timer1, dla 0x00 jest CZASOMIERZEM
    #define TIMER1_PRESKALER_256 TCCR1B =  _BV(CS12) ; // 1024 dla KWARCU  
    #define TIMER1_STARTUJ_OD  TCNT1 =  // wartość początkowa od której zostaną zliczane impulsy.


    Szukałem w DS ale nie moge znaleźć który bit trzeba zresetować/ustawić.
  • REKLAMA
  • #2 7744812
    Dawid_20
    Poziom 17  
    Wyłączasz preskaler
  • REKLAMA
  • #3 7744850
    AVRowiec
    Poziom 18  
    tak patrze że wogóle coś na złych rejestrach operuje ;/ to co wkleiłem działa ale było stosowane na atmega8.

    BTW.
    czy zatrzymywanie przerwania w przerwaniu jest normalną praktyką?
    Timer pracuje, dochodzi do czegoś i musi wykonać mase funkcji. Jak już je wykona włącza sobie preskaler i jedzie dalej. Czy tak napewno można czy są lepsze sposoby?
  • REKLAMA
  • #4 7745416
    _Robak_
    Poziom 33  
    Program w przerwaniu lepiej niech za długo nie siedzi. Jeśli musisz już takie rzeczy robić, to w przerwaniu ustawiasz flagę, którą to potem sprawdzasz w programie.
  • REKLAMA
  • #5 7746666
    AVRowiec
    Poziom 18  
    main'a mam już zajętego. Stawianie flag raczej odpada.
  • #6 7746762
    mirekk36
    Poziom 42  
    AVRowiec napisał:
    main'a mam już zajętego. Stawianie flag raczej odpada.


    No to jeszcze długo będzie musiało wody w rzece upłynąć zanim zrozumiesz, że jeśli chcesz na prawdę programować - to stosowanie tego typu flag jest PODSTAWĄ podstaw, a odpada wrzucanie hektolitrów procedur do obsługi przerwania. Kolega wyżej ma świętą rację i proponowałbym ci jak najszybciej pójść tym tropem jeśli nie chcesz tracić zbyt dużo czasu na naukę programowania.
REKLAMA