вывод на 7-сегм. индикатор с общим анодом Приветствую.
ATmega162, индикатор NEQ-2842AG (4 цифры).
Изучаю сабж. и не работает простенький код (win-avr):
/* Port interfaced to display unit */
#define DISPLAY_PORT PORTC
/* Segments definition */
#define SEG_A 0x01
#define SEG_B 0x02
#define SEG_C 0x04
#define SEG_D 0x08
#define SEG_E 0x10
#define SEG_F 0x20
#define SEG_G 0x40
#define SEG_CD 0x80
/* Display units definition */
#define SEG_D1 PINB3
#define SEG_D2 PINB2
#define SEG_D3 PINB1
#define SEG_D4 PINB0
#define SEG_CD PINA7
uint8_t DigitTable[] = {
~(SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F),
~(SEG_B | SEG_C),
...
};
int main(void)
{
DDRB = (_BV(SEG_D2) | _BV(SEG_D4));
// endless loop
while (1) {
PORTB = _BV(SEG_D2);
DISPLAY_PORT = DigitTable[0];
PORTB = _BV(SEG_D4);
DISPLAY_PORT = DigitTable[1];
}
return 1;
}
По моим соображениям должны загореться 2 и 3 цифра. На деле - ничего не горит. Хотя по отдельности все ок, когда выбираю цифру и пишу в порт.
В чем может быть проблема?
Заранее благодарю.