uuuu писал(а):как переключаться между тремя портами по сигналу
зачем так много действий, и зачем вообще if, которые ничего не делают?
Код: Выделить всё
while(1)
{
PORTD = ~PINB;
}uuuu писал(а):как переключаться между тремя портами по сигналу
Код: Выделить всё
while(1)
{
PORTD = ~PINB;
}unalex писал(а):зачем так много действий, и зачем вообще if, которые ничего не делают?Код: Выделить всё
while(1)
{
PORTD = ~PINB;
}
Код: Выделить всё
#define MASK 0b00000111
temp =PINB &MASK; Код: Выделить всё
char show[]={0b00000001, 0b00000010, 0b00000100, 0b00000111} Код: Выделить всё
#define MASK 0b00000111
// объявление переменных
char temp=0,show[]={0b11111110, 0b11111101, 0b11111011, 0b00000111};
//---------- цикл
temp =PINB &MASK;
switch (temp){
case (0b00000001): PORTD =show[1];break;
case (0b00000010): PORTD =show[2];break;
case (0b00000100): PORTD =show[3];break;
default : PORTD =show[4] ;
}//end of switch vitalik_1984 писал(а):Спойлер
Код: Выделить всё
#define MASK 0x00000111
// объявление переменных
char show[]={0x11111110, 0x11111101, 0x11111011, 0x00000111}; //Error: must declare first in block
//---------- цикл
temp =PINB &MASK; //Error: undefined symbol 'temp'
switch (temp){ //Error: undefined symbol 'temp'
case (0x00000001): PORTD =show[1];break;
case (0x00000010): PORTD =show[2];break;
case (0x00000100): PORTD =show[3];break;
default : PORTD =show[4] ;
}//end of switch
Код: Выделить всё
//определение переменных
unsigned char temp =0; zero648 писал(а):uuuu, замени все иксы "х" на "b"
чет запарился, хотя вроде не должно быть при этом сильных косяков, 111 не превышает 255, просто гореть будет не то, что предполагается.Код: Выделить всё
while(1)
{
PORTD = ~(PINB & 0x07);
}uuuu писал(а):char show[]={0x11111110, 0x11111101, 0x11111011, 0x00000111};
проверяете в железе или симуляторе? На первый взгляд должно работать, но нужны подтягивающие к корпусу резисторы на всех входах. Если их нет, то можно предположить, что при включении на входах вначале низкий уровень, переключатель сразу дает высокий на одном входе, срабатывает нужный while, выставляет нужное значение на выходе, далее входы "подплывают" к логической единице и ни один while уже не сработает.uuuu писал(а):вы как будто меня не слышите?
unalex писал(а):проверьте сначала, потом пишите что не так