Witam.
Piszę program na mikrokontroler AVR. PRogram ma się zajmować pomiarem temperatury i yświetleniem jej na wyświetlaczy segmentowym. Porblem jaki napotkałem jest taki: gdy stworzyłem sobie stukturę e wszystkimi zmiennymi dotyczącymi temperatury (temperatura, pozycja przecinka, znak (+-), jednostka) to zauważłem, że czas wykonania prostej operacji modulo, czy dzielenia przez 10 jest 100 razy dłuższy niż przy operowaniu na zwykłej zmiennej. Nie mam pojęcia z czego to może wynikać. Programuję w Atmel Studio 6.2.
struct dane
{
int32_t temperature;
int8_t pointer;
int8_t sign;
int8_t unit;
//************************************
//Wewnątrz funkcji obsługi przerwania timera:
static struct dane present;
//*****************************
//testowane operacje:
present.temperature % 10; //czas wykonania: ~380 cykli procesora, na zwykłej zmiennej lokalnej ~4 cykle.
present.temperature /= 10; //czas wykonania: ~611 cykli procesora
};