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

Светофотр На 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 пользователей онлайн

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

    • Всем доброго дня! Есть ДВД проигрыватель Toshiba, изначально с питанием 110В. По глупости был включен в розетку с 220В, взорвался конденсатор на входе. Был заменён на аналогичный по ёмкости, но с большим напряжением. Какое-то время проигрыватель работал. Потом перестал включаться. Нужен совет, по переделке БП данного ДВД, если такое вообще возможно с минимальным вмешательством. Паять умею. Схему БП прилагаю. Заранее спасибо за советы.
    • будет ли 60 Вт? Посмотрите схему Подключу моно джек, и его канал соединю с 2 - мя входами на унч
    • Именно так!  Таким способом дядюшки Ляо добиваются максимальной яркости при минимальном времени работы, убивая сразу двух зайцев: а) минимизируя количество потребных светодиодов и б) заставляют потребителя снова и снова покупать свою продукцию. 
    • Вот так должен выглядеть старый, оригинальный, неваренный оригинал, покупался в ЧиД. Есть и более новые такие Тошибы, тоже оригинал, но совсем совсем чуть-чуть отличается корпус и маркировка, у них на сколько помню, эти впадинки по краям чуть менее глубокие, но они тоже оригинальные. У меня такой, только 2SA1943 новодельный в ОМ 2.5 стоит вместе с таким как на фото старым 2SC5200, работают отлично. 
    • Какой  бред  сивой  кобылы!  Все радиолюбители  знают и есть  таблицы  по  которым  мы  видим  процент  КНИ и  отношение  амплитуды  гармоники к амплитуде  основного  сигнала!  Если  уровень  наибольшей гармоники   находиться на -20dB  относительно  пика  основного  сигнала, это 10%  КНИ. Вот  и вся  калибровка! Если  Спектроанализатор  мой  показывает   КНИ и  именно  такое  соотношение амплитуд ,я  точно  верю  ему. И твои  древние  спектроанализаторы  основаны  на этом  же принципе, индикатор  стрелочный  измеряет  амплитуду  основного тона 1 кГц,потом  режекторный   фильтр  вырезает  основной  тон,а  резонансный  контур  настраиваем на 2ю гармонику 2 кГц  и измеряем амплитуду 2й  гармоники и так  все гармоники  измеряем и по таблице  видим  каковы  КНИ  данного  сигнала! Компьютер  это  делает всё  программно! Смотрим скрин.
    • Так может зарядка "гуано" не? Сомневалка у вас отрастет с опытом в профильной работе, пока вам сомневаться нечем. Для особо необразованных пользователей и проверяющий органов выдающих сертификацию для устройств. Вы сегодня про где? см. п.1 ПЛАВДА? у меня допустим до сих пор в пользовании mi watch 3 заряжаемый от чего попало... Внутри. Но вам же по любому виднее... Ок. Это правильно. А проблема в чем?
    • Для увеличения sram у контроллера atmega128a, использую внешнюю sram. Код настройки контроллера на внешнюю sram: in r16, MCUCR              ; ori r16, 0xC0                 ; out MCUCR, r16            ; ldi r16, 0x04                  ; sts XMCRA, r16             ; ldi r16, 0x80                  ; sts XMCRA, r16             ; Возникает вопрос, адрес возврата из подпрограммы будет хранится по адресам 0x10FE и 0x10FF, то есть в конце оперативной памяти самого контроллера или по адресам 0xFFFE и 0xFFFF, то есть в конце внешней оперативной памяти???
×
×
  • Создать...