monokrysztal12 wrote:
Czy jeżeli w Bascomi-e, w przerwaniu, ............
......... czy zapis będzie trwał, a procesor w tym czasię będzie już wykonywał inne rozkazy? Zapisywana jest zmienna bajtowa.
Wpis wartości zmiennej do EEPROM nie odbywa sie samoczynnie, jak powiedzmy przesączanie wody przez lejek(!). Tego wpisu dokonuje processor; nie ma tam pośrednika (chyba jedynie timery i to nie we wszystkich trybach mogą pracować bez udziału processora). Zabiera to trochę czasu, ale nie aż tak dużo jak podajesz (4 ms!!!).
Jeżeli wpisu (do EEPROM) dokonujesz w przerwaniu to zajmie to 150 do 200 cykli zegara, zależnie od wielkości zmienej i procedury jaką wpiszesz w przerwaniu. Jest tu już wliczona obsługa stosu. Zatem czas liczony w jednostkach przyswojonych przez ludzi (us, ms, etc.) będzie zależał od f- taktowania processora. Możesz ten process w duzym stopniu skrócic: - zamiast generować specjalne przerwanie dla wpisu, wstawisz tą operację w program główny (Do.....Loop) uwarunkowaną wystąpieniem flagi generowanej gdzies w programie...
Stracisz priorytet operacji wpisu, kilka taktów na sprawdzanie flagi, ale zyskujesz na czasie pomijając obsługę stosu w przerwaniu (co najmniej 64 cykle) i nie 'zawieszasz' interraptów na czas wykonania całego przerwania.
e marcus