void cifra (int r)
{
PORTD = n7segment[r];
delay_ms(5);
}
void s7display(int n)
{
PORTB = 0b00000100; cifra(n%10);
PORTB = 0b00000010; cifra(n%100);
PORTB = 0b00000001; cifra(n%1000);
}
HarryStar, спасибо вам огромное за помощь !!!)
Вот выше я выделил наиболее интересный для меня фрагмент кода из той программы которую вы написали...
Я так понимаю, что под n подразумевается число которое нужно вывести на дисплей.
Но тогда,( если я не прав, то прошу меня поправить ), это справедливо только для трёхзначного числа, тобишь не больше трёх знаков...
Я вот думаю, может добавить в начале функцию преобразования числа, до нужного количества знаков ???
Проверить полученое число на условие длинны в три знака, и если это условие не соблюдается, то делить число на 10 пока оно не будет соблюдаться. Что скажете ?
Добавлено спустя 31 минуту 9 секунд:А вот ещё проблемка, как выводить дробное число, тобишь десятичную точку ?)
Сейчас сижу думаю....
Например если число 0.5
Вообще я сейчас делаю термометр, но не решив проблему с индикатором (дисплеем), я не могу заняться изучением датчика DS18B20...