уже сто раз проверил
будет так:
#define MASKB 0x02 //было 0х80
//тут мы маскируем РВ1-по ТЗ именно этот порт отвечает за сегмент А,
//а вы пытались замаскировать байт-символ(это там 7-й бит отвечал за сегмент А)
#define MASKC 0x41 // было 0х48
// тут маскируем РС6-сегмент Н и РС0-сегмент В, а из байта-символа
// мы все равно выдергиваем нужные биты с помощью &_BV(6) и &_BV(3)
#define MASKD 0x37
PORTD = (PORTD & ~MASKD) | (SCR[pos] & MASKD);
PORTB = (PORTB & ~MASKB ) | ((SCR[pos] & _BV(7)) >> 6); // и тут совсем немного меняем
PORTC = (PORTC & ~MASKC) |
((SCR[pos] & _BV(6)) |
(((SCR[pos] & _BV(3)) >> 3);
Кстати от куда взялось это _BV(7),_BV(6),_BV(5)... мы же вроде ни где не описывали??.
Содержимое поста отредактировано: vek, в: 07.04.2011 14:46