В общем задача банальная: засветить 3х символьный 7сегментник
Но ! Беда в том, что во всех примерах на форуме он занимает целый порт.
У меня атмега8 + кварц(заняты PB6 и PB7) + кнопки на прерываниях(int0 занят), отсюда я не могу использовать порт весь целиком
а во всех программах используют чтото подобное:
Код: Выделить всё
while (1)
{
switch (cur_dig)
{
case 0:{digit3=0; digit1=1; break;}; //подаём питание на разряд 3
case 1:{digit1=0; digit2=1; break;}; //подаём питание на разряд 2
case 2:{digit2=0; digit3=1; break;}; //подаём питание на разряд 1
}
PORTB=digits[digit_out[cur_dig]]; //выводим с каждым срабатыванием таймера число с масива в порт В, но не для всех разрядов сразу
cur_dig++; //с каждым срабатыванием таймера, увеличиваем переменную cur_dig на 1
if(cur_dig==3) cur_dig=0; //если cur_dig = 3 обнуляем
так вот прошу подсказки или примера кода (если возможно) как можно это обойти.
здорово бы было если порты задать через #define, но как их потом перебирать и присваивать ума не приложу
Спасибо за ваше время и ответы



Вы в какой среде кодите?
