нажал на кнопу-помигал 4 раза свд потом горит постоянно. А при отпускании кнопки в любой момент выполнения программы свд должен выключится
Диод-PORTB.0
кнопка-PORTC.4
Код: Выделить всё
void wait(void)
{
for(k= 0; k<100; k++)
{
if(PINC.1) #asm("RJMP 0");
}
}
.
.
.
.
while(PINC.4);
for(i= 0; i<4; i++)
{
PORTB.0= 1;
wait();
PORTB.0= 0;
wait();
}
PORTB.0= 1;
while(!PINC.4);
#asm("RJMP 0");Код: Выделить всё
#define KEY PINC.4
#define LED PORTB.0
#define ON 1
#define OFF 0
void main(void)
{
unsigned char FlagKey=0;
DDRB|=(1<<0);
PORTB&=~(1<<0);
DDRC&=~(1<<4);
PORTC|=(1<<4);
if((!FlagKey)&&(!KEY))
{
delay_ms(10);
if (!KEY)
{
for (unsigned char i=0; i<3; i++)
{
LED=ON;
delay_ms(300U);
LED=OFF;
delay_ms(300U);
}
LED=ON;
FlagKey=1;
}
}
if((FlagKey)&&(KEY))
{
delay_ms(10);
if (KEY)
{
LED=OFF;
FlagKey=0;
}
|
}
Код: Выделить всё
delay_ms(300U);?при отпускании кнопки в любой момент выполнения программы свд должен выключится
Код: Выделить всё
{
for(k= 0; k<100; k++)
{
if(PINC.1) #asm("RJMP 0");
}
}
.
.
.
.
while(PINC.4);
for(i= 0; i<4; i++)
{Явно, что это только фрагмент программы, и надо встраивать в другой код. Без знания структуры ничего не напишешь.