RTV forum PL | NewsGroups PL

Jak uzyskać idealny przebieg sinusoidalny 425 Hz z Atmegi8 zamiast trójkąta?

Fast PWM - trójkąt zamiast sinusa na wyjś ciu

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak uzyskać idealny przebieg sinusoidalny 425 Hz z Atmegi8 zamiast trójkąta?

Goto page Previous  1, 2

Michal Schulz
Guest

Mon Mar 11, 2013 4:49 pm   



Am 20.02.13 18:32, schrieb Atlantis:
Quote:
I jeszcze jedno: czy odczytywanie wartości z tabeli przechowywanej w
pamięci flash bardzo spowolni wykonywanie programu? Pytam, ponieważ
odwołuję się do niej w przerwaniu, a jak wiadomo ono powinno się
wykonywać jak najszybciej...

trzy cykle CPU zamiast dwoch. Tyle co nic.

ps: nie napisales jakiego typu jest zmienna sinus_ind w twoim kodzie,
zakladam ze 16-bitowa (typ int). Poniewaz twoja tablica sinusa ma 256
bajtow mozesz uzyc 8-bitowego typu i napisac "brzydki" kod:

unsigned char sinus_ind;

ISR (TIMER0_OVF_vect)
{
OCR1A = pgm_read_byte(&sinus_buffer[sinus_ind++])

TCNT0 = 182;
}

zmienna sinus_ind "przepelni sie" sama, po wartosci 255 kolejna
inkrementacja ustawi zmienna na 0. "if ... else ..." mozesz sobie odpuscic.

Tak tak, to jest brzydki styl Wink

Goto page Previous  1, 2

elektroda NewsGroups Forum Index - Elektronika Polska - Jak uzyskać idealny przebieg sinusoidalny 425 Hz z Atmegi8 zamiast trójkąta?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map