Перейти к содержанию
С Днём Победы! ×

Led На Выводах


Bitaxa

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

помогите новичьку! только начал знакомится с АВР и не могу понять как зажечь LED лампы на портах PORTB и PORTD что бы свитилися по очереди то там то там!выкидывает на библиотеку делай при компилировании.горит только PORTB. Как включить и порт Д?? И как бонус как установить РАНДОМ для поочередного запала на разных лапках порта! кто что посоветует. Делал все как на видео урока 3

// Atmega8A

[code]
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
void preset () {

DDRB = 0xFF; // portB -На выход
PORTB = 0x00; // portB - обнуляем;

}
void drest() {

DDRD = 0xFF; // portd - na vihod
PORTD = 0x00; // portd - obnul

}
int main(void)
{
preset();
drest();

while(1)
{
PORTB = 0xFF; // подать сигнал
_delay_ms(1000); // пауза 1 секунда
PORTB = 0x00; // убрать сигнал
_delay_ms(1000); // пауза

PORTD = 0xFF;
_delay_ms(3000); // пауза 1 секунда
PORTD = 0x00;
_delay_ms(3000); // пауза 1 секунда
}
}

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

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

Код в принципе правильный, должно работать. компилятор ругался на последнюю закрывающуюся скобку -" } ". Набрал заново, откомпилировал без проблем.

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

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

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

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

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

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

у меня все норм компелируется но на PORTB горят диоды, а на PORTD -

PORTD = 0xFF;
_delay_ms(3000); // пауза 1 секунда
PORTD = 0x00;
_delay_ms(3000); // пауза 1 секунда

несрабатывает почему то!моргает только первый!мож надо два цыкла сделать?или кто подскажет как еще сделать что бы моргало выборочно Рандомом - что добавить!спасибо заранее!мож это и легко но что то не могу догнать как в двоичном коде обратится к лапкам...(

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

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

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

А симуляторы (Протеус, Студия) что говорят? В них нормально мигает или та же проблема?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

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

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

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

А симуляторы (Протеус, Студия) что говорят? В них нормально мигает или та же проблема?

та в протеусе и ток вроди идет на PORTD но анимации что моргают нету или что то со студией?хотя на PORTB все норм моргает с выдержкой

http://www.pictureshack.ru/images/74889_tok2.png

http://www.pictureshack.ru/images/57354_tok1.png

Ну как то так!или все же все верно?

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

В симуляции цифровой схемы резисторы не обязательны. Можете их убрать, можете выставить в свойствах "цифровые". В отличие от реальных, виртуальные диоды не горят.

А чего катоды диодов, висящих на PORTD не заземлены? Куда ток течь должен?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Мдя... Вот и пойми что у человека по его первому посту. А оказывается, он светодиоды никуда не подключил и удивляется, что они у него не светятся :lol:

Кошмар... Что за народ пошёл. Не имея никаких понятий по электронике, даже самых основных, лезут в микроконтроллеры :wall: ИМХО, подобные темы нужно в мусорку выкидывать.

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

В симуляции цифровой схемы резисторы не обязательны. Можете их убрать, можете выставить в свойствах "цифровые". В отличие от реальных, виртуальные диоды не горят.

А чего катоды диодов, висящих на PORTD не заземлены? Куда ток течь должен?

блин точно!)СПАСИБО что то реально затупил!и не подскажешь как сделать что бы лампы случайно загоралися или ссылку какую то где прочитать?

Alex лучше бы совет дал а не сразу рогами упиратся! нужно другим помагать а не в мусорку

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

man random / man rand

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

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

man random / man rand

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

ну да согласен! та закон не первый год учу!)а ошибка признаю глупая дальше некуда) спасибо и за рандом)

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

а если сделать что бы на POTRB например сначало 1 минуту моргали диоды, потом 1 минуту бежали сверху вниз и 1 минуту снизу вверх!и все это по кругу повторялося то это для каждого моргания надо делать свою библиотеку и подключать в общий цыкл или как выдержать минуту и переход в новое состояние?есть есть где об этом прочитать буду рад!

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

Программа в контроллере выполняется последовательно, команда за командой. Поэтому проблемы чаще возникают с одновременным выполнением кусков кода. Самый простой способ реализовать ваш алгоритм

цЫкл{
 цЫкл(пока не прошла минута){
   мигалка_1();
 }
 цЫкл(пока не прошла минута){
   мигалка_2();
 }
 цЫкл(пока не прошла минута){
   мигалка_3();
 }
}

Отсчет времени можно делать либо просчитав такты выполнения соответствующих процедур, либо, что проще, по таймеру (cd даташит && man таймеры)

Разумеется, есть и более простые, оптимальные и красивые способы, но их лучше найдите самостоятельно.

Ах да. Библиотеки к этому отношения не имеют абсолютно.

И еще одно: если когда будете писать код или сообщение, не забывайте о форматировании, комментариях и правилах языка (как русского, так и машинного).

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

И еще одно: если когда будете писать код или сообщение, не забывайте о форматировании, комментариях и правилах языка (как русского, так и машинного).

Все понятно!всегда по людски отвечаешь!)ну можно и наделать 3 функции отдельных и вложить уже в сам мейн что бы было красивее!?

по таймеру (cd даташит && man таймеры) - так и погуглить или скажи библиотеки куда сначало глянуть если это стандартные функции?

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

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

Таймер - аппаратный модуль, присутствующий едва ли не во всех контроллерах. Он позволяет считать определенное количество тактов системного (реже - асинхронного) счетчика и по окончании вызывать прерывание. Или просто считать сколько там натикало. Причем сам по себе он не тратит процессорное время. В даташите на контроллер или в Евстифееве расписано подробнее.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

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

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

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

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

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

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

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

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

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

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