Объединение разных PINов в один PORT
Добавлено: Пн июл 09, 2012 20:54:47
Доброго времени суток.
Возникла небольшая проблема с портами мк, а точнее их расположением ...
Начну с начала, как я к этому пришел ... Решил сделать подарок девушке в виде светодиодного сердечка (идеей был вдохновлен на хабре). Начал кодить на отладочной плате (самопал), на которой стоит ATmega16 в DIP корпусе.
И тут понеслась ... вроде сделал хорошие наброски кода, баловался с портом В, грациозно делал всякие вундервафли и мигалки с помощью сдвига регистра порта В, аля кусочек из цикла for:
Решил портировать все это на мегу8 и тут понял что не все так просто
Если взглянутьна мегу8 в TQFP корпусе то видим

что если ее визуально поделить на пополам (две половинки сердечка) вертикально то получим по 11 пинов на сторону
Слева: PD0, PD1, PD2, PD3, PD4PB6, PB7, PD5, PD6, PD7, PB0
Cправа: PC5, PC4, PC3, PC2, PC1, PC0, PB5, PB4, PB3, PB2, PB1
И так внимание вопрос !
Можно ли эти пины обьеденить в один так называемый 11 битный "порт" что б можно было левой и правой частью управлять как 8ми битным портом, т.е. к примеру LEFT=0b00000000001 и загорается первый (PD0) диод ?
Или быдлокодить и дергать пины через делей ? что щитаю не спортивным
Жду любых коментов по теме и камней в мою сторону
Возникла небольшая проблема с портами мк, а точнее их расположением ...
Начну с начала, как я к этому пришел ... Решил сделать подарок девушке в виде светодиодного сердечка (идеей был вдохновлен на хабре). Начал кодить на отладочной плате (самопал), на которой стоит ATmega16 в DIP корпусе.
И тут понеслась ... вроде сделал хорошие наброски кода, баловался с портом В, грациозно делал всякие вундервафли и мигалки с помощью сдвига регистра порта В, аля кусочек из цикла for:
Код: Выделить всё
PORTB=0x00000001;
PORTB=PORTB<1;
Если взглянутьна мегу8 в TQFP корпусе то видим

что если ее визуально поделить на пополам (две половинки сердечка) вертикально то получим по 11 пинов на сторону
Слева: PD0, PD1, PD2, PD3, PD4PB6, PB7, PD5, PD6, PD7, PB0
Cправа: PC5, PC4, PC3, PC2, PC1, PC0, PB5, PB4, PB3, PB2, PB1
И так внимание вопрос !
Можно ли эти пины обьеденить в один так называемый 11 битный "порт" что б можно было левой и правой частью управлять как 8ми битным портом, т.е. к примеру LEFT=0b00000000001 и загорается первый (PD0) диод ?
Или быдлокодить и дергать пины через делей ? что щитаю не спортивным
Жду любых коментов по теме и камней в мою сторону