Обращаюсь я к вам за помощью так как попал в затруднительное положение первый раз столкнулся с такой задачей и не знаю как эффективно её реализовать.
Суть проблемы в чём, рассказываю. У меня есть автомобиль я сам за рулём ,так вот собрал я се как то такой забавный девайсес на Attiny2313 к контролеру подключались две RGB ленты в два канала одна лента подсвечивает панель приборов вторая лента отвечает за подсветку пола и находиться она под передними сиденьями управление цветом и яркостью каждого канала осуществляется с телефона через блютуз модуль (HC-05)подключенный к USART контролера.
Проработал у меня этот замечательный и очень нужный девайсесик (по другому его не как и не назовёшь)больше года на удивление всем кому я его демонстрировал все в восторге особенно девушкам очень нравится он а дружбанны говорят типа так > уууаааууу зделай мне так же.))) Во общем решил я ему зделать UPGRATE добавить дополнительно функций разных полезных . но обнаружел что памяти Attiny2313 не хватает для воплощения моих идей я решил портировать его на Atmega8 или другой контроллер с большей паметью. Портировать прошивку то я портировал это не сложно но вот с чем столкнулся!!!! В моём девайсеса первом на Attiny2313 там на подключение двух лент подсветки и каналов ШИМ выделен полностью PORTB то есть младшая тетрада PORTB управляет RGB лентой панели а старшая тетрада PORTB управляет RGB лентой пола. Код так реализован есть две функции с одним параметром цветом свечения ленты. Одна функция управляет лентой пола другая лентой панели.
void WritePortPanel(unsigned char Hi);//цвет панели
void WritePortPol(unsigned char Low);// цвет пола
А в контроллере Atmega8 нет единого порта чтоб так же использовать эти функции. Там или мешают ноги кварцевого резонатора или нога RESET или USART (см. фото )
Можно же конфигурировать шины USI или I2S или в библиотеке под жк экранов тоже можно настроить разные пины под конкретную нужду как там это реализовано кто знает помогите пожалуйста.
Надо что то в роди этого:
Создаём переменную виртуального порта PORTtest и настраиваем как то так
PORTtest.0 -> PORTB.1
PORTtest.1 -> PORTB.2
PORTtest.2 -> PORTB.3
PORTtest.3 -> PORTB.0
PORTtest.4 -> PORTB.5
PORTtest.5 -> PORTD.1
PORTtest.6 -> PORTD.2
PORTtest.7 -> PORTD.3
и уже в самой программе разговаривать с PORTtest (составленный который из пинов разных портов) как с обычным аппаратным портом.
PS; в CodeVision 2.05


