Avr4 Студио Код На Си

16-03-2013, 02:03 От: admin Посмотрели: 926
Доброго бремени суток!

Вот уже неделю как пытаюсь разобраться с простыми вещами на микроконтроллере, получилось следующее:

1. Смог повторить светофор на АТмега16. Ну собственно здесь замарочился - захотел добавить кнопку, по которой светофор включается... Проблема в том, что хотелось бы закончить работу светофора при отжатии кнопки... Так вот такая функция не работает, если таймер delay_ms запустился на каком либо шаге...

Код программки здесь



#include <mega16.h>
#include <delay.h>
#include <io.h>


// Declare your global variables here
#define F_CPU 1000000UL;
void main(void)
{

PORTD=0x00;
DDRD=0x07;
PORTB=0x00;
PORTB.0=0b00000000;
DDRB=0xAA;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

while (1)
{
STEP1:
if ((PINB.0 == 1) ) // Если кнопка нажата...
{
while( (PINB.0 == 1) ) {

PORTD.2=0;
PORTD.0=1;
if (PINB.0==0)
{goto STEP1;}
if (PINB.0==1)
{delay_ms(10000);}
PORTD.0=0;
if(PINB.0==0)
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.0=1;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.0=0;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.0=1;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.0=0;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.0=1;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.0=0;
PORTD.1=1;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(3000);}
PORTD.1=0;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.1=1;
PORTD.2=1;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.1=0;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(3000);}
PORTD.2=0;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.2=1;
if ((PINB.0==0) )
{goto STEP1;}
if (PINB.0==1)
{delay_ms(1000);}
PORTD.2=0;
}}
else
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;

}

}



Помогите с вопросиком - как прерывать/возвращать программу в шаг 1 при отжатии кнопки PB0, тоесть завершать таймер автоматически или другим способом - .



За ранее благодарен.



Сори за тупой вопрос Avr4 Студио Код На Си
Раздел: Песочница или Вопрос-Ответ

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Avr4 Студио Код На Си все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930