Почему оно вообще работает, не понимаю...
1. Портс перед переключением (свич) желательно обнулить, иначе будет видна засветка соседних разрядов.
2.Преобразование - инт - массив далеко от идеала, я бы предложил что-то типа
Код:
|
unsigned int arr[4];
void inttostr(unsigned int tmp)
{
const unsigned int step[4]={1000,100,10,1};
unsigned char i;
unsigned int val,temp,atemp;;
val=tmp;
for (i=0; i‹4; i++)
{
temp=step[i];
atemp=0;
while(val ›= temp)
{
atemp++;
val-=temp;
}
arr[i]=atemp;
}
} |
3. И наконец,как работает функция считывания температуры ? Если она выключает прерывания, то будет видно мерцание. Если не выключает, то, когда в момент считывания происходит прерывание по регенерации дисплея, показания будут искажаться.
Лучше бы написать что-то свое вместо библиотечной функции.