Перейти к содержанию

Светофотр На Attiny 2313


Рекомендуемые сообщения

На С++ не работал (писал чуть чуть в delphi) так что не судите строго. Файл в формате hex прилагается.

Вот текст программы:

//Программа <<Светофор>>

//дЕЛАЛ САМ.

//Надеюсь что эта программа поможет кому-то

//написана на WINAVR для МК attiny 2313 опробована в proteus 7

//на ножки Pb0 зеленый светодиод, на Pb1 желтый, на PB2 красный

#include <avr/io.h> // библиотека I/O

#include <util/delay.h> // библиотеки пауз

int main(void)

{

DDRB |= _BV(PB0); // назначить ножку PB0 ВЫХОДОМ для зеленого светодиода

DDRB |= _BV(PB1); // назначить ножку PB1 ВЫХОДОМ для желтого светодиода

DDRB |= _BV(PB2); // назначить ножку PB2 ВЫХОДОМ для красного светодиода

int i; //объявления переменной целого числового типа.

l1: //метка для перехода

i=0;//присваиваем переменой значение 0.

PORTB |= _BV(PB0); // "1" на PB0 - зеленый светодиод вкл.

_delay_ms(150); // Пауза 150 милиСек.Светодиод горит

PORTB &= ~_BV(PB0); //"0" на Pb0 -зеленый светодиод выкл.

l5: //метка для перехода

i=i+1;// счетчик

PORTB |= _BV(PB1); // "1" на PB1 -желтый светодиод вкл.

_delay_ms(80); // Пауза 80 милиСек. Светодиод горит

PORTB &= ~_BV(PB1);// "0" на PB1 -желтый светодиод выкл.

if (i<4) //если и меньше 4 то

{

_delay_ms(80);// делаем задержку в 80 милисек.Для того чтобы желтый светодиод был накоторое время погашен

goto l5;// переходим к метке l5 и повторяем все снова пока i не станет равным или больше 4

}

PORTB |= _BV(PB2); //если i стало равным или больше 4 то включем "1" на PB2 - красный светодиод вкл.

_delay_ms(150); // Пауза 150 милиСек.Светодиод горит

PORTB &= ~_BV(PB2);// "0" на PB2 -красный светодиод выкл.

PORTB |= _BV(PB1); // "1" на PB1 -желтый светодиод вкл.

_delay_ms(150); // Пауза 150 милиСек.Светодиод горит

PORTB &= ~_BV(PB1);// // "0" на PB1 -желтый светодиод выкл.

goto l1;//переходим к метке l1 и начинаем все заново :)

return 0;

} // скобка для main(void)

svetofor для winavr.rar

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Коментарии совершенно неинформативные, лучше уж без них.

Если на то пошло, можно было обойтись вообще без счетчиков - каждый шаг можно было бы сделать отдельным, развернув цикл мигания. В программе такого уровня можно не заморачиваться с циклами.

И вкл-выкл светодиода каждого цвета можно было бы вынести как макроопределения, тогда программа становится очень простой, читаемой даже без комментариев... и даже в чем-то банальной.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Следующий шаг - научиться работать с таймерами и прерываниями, разгрузить основной цикл программы от "медленных" задач. _delay_ms в программах посложнее - зло, потому что время ожидания тратится впустую, МК не может в это время выполнять никаких других задач.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Все верно, но это светофор. У него нет других задач, кроме как висеть и мигать. Бабушку через дорогу ни за что не переведет. :D Хотя все замечания справедливые. Санек 24, можешь считать, что первое "ма-а-ма-а" ты произнес. Теперь учись "разговаривать внятно".

Ссылка на комментарий
Поделиться на другие сайты

  • 7 лет спустя...

Здравствуйте! Господа продайте рабочую прошивку для трех светодиодов и одной кнопки ( нажал и отпустил - горит первый светодиод и не горят другие, наж.и отп. - горит второй и не горят др. ну ит.д) всего 3 светодиода.Для ATtiny13.

Ссылка на комментарий
Поделиться на другие сайты

И ради вот такой примитивщины микроконтроллер гонять?

Просят - не откажи. Не просят - не навязывайся!

Простота хуже воровства.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...