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