Witam na forum
Piszę w ramach wprawki prostą bibliotekę modbus (ATMEGA 8), i mam dwa pytanka :
- w celu ułatwienia dostępu do struktury w której trzymam ramkę odebraną/do nadania używam wielopoziomowej unii. Czy taka konstrukcja jakoś bardzo pogarsza wydajność programu?
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
- w przerwaniu generowanym po odbiorze danej przez UART, przy pierwszej danej odebranej ustawiam parametry dla TIMER0 tak aby generował przerwanie po około 3ms, jeśli nie wykonam kasowania (wpisanie 1) rejestru TIFR |= (1<<TOV0) to według objawów działania programu po pierwszym odebranym znaku generowane jest przerwanie TIMER0, następne znaki odbierane są już poprawnie, po wykonani kasowania flagi TOV0 (jak w poniższym kodzie) działa dobrze. Nie znalazłem w datasheeet do A8 żadnej informacji która naprowadziłaby mnie skąd bierze się ten problem, ale w niektórych rozwiązaniach w necie kasowanie TOV0 jest również stosowane, w programie nie wykorzystuje poza tym innych timerów.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i makra
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
pozdrawiam Jurek