Witam,
Mam problem z timerem1 - timer pracuje w trybie CTC (4), wartość wpisywana do rejestru OCR1A jest wcześniej odczytywana z przetwornika ADC (potencjometr). Problem występuje podczas zmiany tej wartości - timer tak jakby się przycinał (ale tylko czasami) - nie zgłasza przerwania przez pewną chwile, żeby zaraz zacząć normalnie pracować. Np. po takiej przerwie rozpędzany silnik krokowy staje, bo z dużej częstotliwości nie ruszy.
Tyczy się to procesorów: Atmega128, Atmega88 i AT90PWM3B. Problem nie jest po stronie pomiaru z ADC. Robiłem aplikacje gdzie wartość ORC1A była przesyłana przez rs i timer zachowywał się tak samo dziwnie. Ale akurat tam nie przeszkadzało to tak bardzo.
konfiguracja timera:
Spotkaliście się kiedyś z takim problemem?
Mam problem z timerem1 - timer pracuje w trybie CTC (4), wartość wpisywana do rejestru OCR1A jest wcześniej odczytywana z przetwornika ADC (potencjometr). Problem występuje podczas zmiany tej wartości - timer tak jakby się przycinał (ale tylko czasami) - nie zgłasza przerwania przez pewną chwile, żeby zaraz zacząć normalnie pracować. Np. po takiej przerwie rozpędzany silnik krokowy staje, bo z dużej częstotliwości nie ruszy.
Tyczy się to procesorów: Atmega128, Atmega88 i AT90PWM3B. Problem nie jest po stronie pomiaru z ADC. Robiłem aplikacje gdzie wartość ORC1A była przesyłana przez rs i timer zachowywał się tak samo dziwnie. Ale akurat tam nie przeszkadzało to tak bardzo.
konfiguracja timera:
TCCR1A |= (0 << WGM11);
TCCR1B |= (1 << WGM12) | (0 << CS12) | (1 << CS11) | (1 << CS10); //prescaler: 64
TIMSK1 |= (1 << OCIE1A);Spotkaliście się kiedyś z takim problemem?