dzięki Krauser działa, muszę popracować nad zmniejszeniem programu bo zajmuje już za dużo. Zaraz popatrzę na to
resolutionteraz zamierzam dodać kolejne tabelę z innymi kształtami + zmiana tabeli po przejściu do częstotliwości granicznej.
editw przerwaniu po osiągnięciu maksymalnej częstotliwości zmieniam wartość zmiennej
mode o jeden. Ma to na celu zmienić typ sygnału. O w tej linijce:
R2RPORT = pgm_read_byte(
&sinewave[akumulator >> 8]); jak teraz optymalnie podmieniać pogrubione w zależności od mode
mode to volatile uint8_t mode=0; <- zmieniane w przerwaniu
wpadłem na pomysł zrobienia takiej tablicy
Kod:
const uint8_t *SIGNALS[] ={
sinewave,
squarewave,
trianglewave,
sawtoothwave,
rewsawtoothwave,
ECG
};
utworzeniu zmiennej globalnej
uint8_t *wsk;, przypisania adresu
wsk=&mode a następnie takiego odwołania R2RPORT = pgm_read_byte(
&SIGNALS[*wsk][akumulator >> 8]);
Nie jestem dziś sprawdzić czy typ sygnału się zmienia, w pon będę miał dostęp do oscyloskopu.
No i dostaje przy wsk=&mode; warning
assignment discards qualifiers from pointer target typeMoże ktoś ma inny pomysł jak podmienić rodzaj sygnału najprościej.
każda podmiana w
&SIGNALS[] w nawiasach kwadratowych jakąś zmienną powoduje spadek częstotliwości z 1kHz dla do 0.57kHz. Jak wpisze &SIGNALS[1] to jest równo 1kHz. Jak podmienić wartość w nawiasach bez spadku wydajność?