на С для Code Vision AVR; буду очень благодарен.
на С для Code Vision AVR; буду очень благодарен.
Код: Выделить всё
void Display (unsigned int Number) //Ф-ция для разложения десятичного цисла
{
unsigned char Num1, Num2;
Num1=0;
while (Number >= 10)
{
Number -= 10;
Num1++;
}
Num2 = Number;
Disp1 = Dig[Num1];
Disp2 = Dig[Num2];
}
void Dig_init(void) //Массив для отображения цыфр на семисегментном индикаторе
{ // тут нужно указать числа которые в двоичном виде будут отображать цифру
Dig[0] = 95;
Dig[1] = 24;
Dig[2] = 109;
Dig[3] = 124;
Dig[4] = 58;
Dig[5] = 118;
Dig[6] = 119;
Dig[7] = 28;
Dig[8] = 127;
Dig[9] = 126;
}
Код: Выделить всё
//вес бита сегмента
#define A 1
#define B 2
#define C 4
#define D 8
#define E 16
#define F 32
#define G 64
unsigned char digits[] = {
~(A+B+C+D+E+F), // 0
~(B+C), // 1
~(A+B+D+E+G), // 2
~(A+B+C+D+G), // 3
~(B+C+F+G), // 4
~(A+C+D+F+G), // 5
~(A+C+D+E+F+G), // 6
~(A+B+C), // 7
~(A+B+C+D+E+F+G), // 8
~(A+B+C+D+F+G), // 9
~(G), // 10 - знак минус
~(A+B+F+G), // 11 - символ градус цельсия
~(0) // 12 - пусто
}; Код: Выделить всё
...
unsigned char digits[] = {
(A+B+C+D+E+F), // 0
(B+C), // 1
...

На сколько я помню то часы это от 0 до 23 а минуты от 0 до 59.Тарас писал(а):да, но у тебя только на 3 розяда, а нужно для 4-х
Тарас писал(а):да, но у тебя только на 3 розяда, а нужно для 4-х
