Кто может помочь?
Есть программа, код для индикатора с общим анодом, хочу переделать для индикатора с общим катодом, массив инвертировал то что было ранее закомментировал.
Код: Выделить всё
flash unsigned char DIG[33] = {
//G C DP D E A F B
//0b10100000, //0
0b01011111,
//0b10111110, //1
0b01000001,
//0b01100010, //2
0b10011101,
//0b00101010, //3
0b11010101,
//0b00111100, //4
0b11000011,
//0b00101001, //5
0b11010110,
//0b00100001, //6
0b11011110,
//0b10111010, //7
0b01000101,
//0b00100000, //8
0b11011111,
//0b00101000, //9
0b11010111,
//0b00110000, //A-10
0b11001111,
//0b00100101, //b-11
0b11011010,
//0b11100001, //C-12
0b00011110,
//0b00100110, //d-13
0b11011001,
//0b01100001, //E-14
0b10011110,
//0b01110001, //F-15
0b10001110,
//0b10100001, //G-16
0b01011110,
//0b00110101, //h-17
0b11001010,
//0b11110111, //i-18
0b00001000,
//0b10100110, //J-19
0b01011001,
//0b11100101, //L-20
0b00011010,
//0b00110111, //n-21
0b11001000,
//0b00100111, //o-22
0b11011000,
//0b01110000, //P-23
0b10001111,
//0b01110111, //r-24
0b10001000,
//0b01100101, //t-25
0b10011010,
//0b10100100, //u-26
0b01011011,
//0b00110100, //H-27
0b11001011,
//0b00101100, //Y-28
0b11010011,
//0b01111111, //- 29
0b10000000,
//0b11101111, //_-30
0b00010000,
//0b10110111, //ii31
0b01001000,
//0b11111111 // -32
0b00000000
};
Хотя должен гореть последний, четвертый, значит где то еще надо вывод инвертировать.
Если правильно понимаю то тут
Код: Выделить всё
switch (PLACE) {
case 0: PORTB |= 0b00111100;
PORTC &= 0b11000000;
PORTD &= 0b11111100;
PORTC |= (DIG[L0]&0b00111111);
if (MODE==1) PORTC.5=0;
PORTD |= ((DIG[L0]&0b11000000)>>6);
A0=0;
break;
case 1: PORTB |= 0b00111100;
PORTC &= 0b11000000;
PORTD &= 0b11111100;
PORTC |= (DIG[L1]&0b00111111);
PORTD |= ((DIG[L1]&0b11000000)>>6);
A1=0;
break;
case 2: PORTB |= 0b00111100;
PORTC &= 0b11000000;
PORTD &= 0b11111100;
PORTC |= (DIG[L2]&0b00111111);
PORTD |= ((DIG[L2]&0b11000000)>>6);
A2=0;
break;
case 3: PORTB |= 0b00111100;
PORTC &= 0b11000000;
PORTD &= 0b11111100;
PORTC |= (DIG[L3]&0b00111111);
PORTD |= ((DIG[L3]&0b11000000)>>6);
A3=0;
break;
Кто то может подсказать что не так делаю? Приложил файлик с кодом, если не сложно можно в файлике поправить, просто хочу сравнить, посмотеть что я не так делаю

