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

Светодиод В Низком Уровне


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

Всем доброй ночи!

Собираю многострадальную схему-мигалку а-ля helloworld на attiny13.

Подключил светодиод к PB3 катодом и к VCC анодом. Будет ли он гореть если PB3 в низком уровне и гаснуть при высоком?

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

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

Гореть будет. Может, уже сгорел. Проверьте его. И порт контроллера проверьте. Для следующего эксперимента добавьте к светодиоду резистор.

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

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

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

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

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

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

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

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

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

Ну резистор здесь подразумевается, стоит 1кОм, рядом стоит еще один светодиод просто подключенный к питанию, с таким же резистором, в такой же полярности, горит. А этот - не горит.

И вообще, независимо от прошивки между ногой микроконтроллера, на которой стоит светодиод и землей, постоянно 4.5В. Ни мигание, ни постоянная запись 1 или 0 на эту ногу ничего не меняют, печаль(((

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

А "этот" проверен? Или он УЖЕ не горит? Если "этот" и "не этот" местами поменять?

Хорошо зафиксированный пациент в анестезии не нуждается

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

А "этот" проверен? Или он УЖЕ не горит? Если "этот" и "не этот" местами поменять?

Проверен, горит. И дело не в светодиоде, я же говорю, что нога микрухи ни на что не реагирует - на ней постоянно высокий уровень

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

Стесняюсь спросить. А что программа контроллера и его управляющие настройки говорят по поводу этого вывода?

#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
   DDRB = (1 << PB3);
unsigned int i = 0;
while(1)
{
 PORTB = i & (1 << PB3);
 i = (i + 1) % 8;
 _delay_ms(500);
}
return 0;
}

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

1. Зачем такая сложность в вычислениях, когда можно проще

2. не указали частоту кварца для функции _delay_ms. По идеи должен был поругаться

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

1. Зачем такая сложность в вычислениях, когда можно проще

2. не указали частоту кварца для функции _delay_ms. По идеи должен был поругаться

1. Делал и проще - перебрал много разных вариантов прежде чем задавать вопрос здесь

2. Задается через -D при компиляции

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

1. Уберите светодиод и посмотрите поведение ноги осциллографом или даже вольтметром.

2. Перекиньте в программе управление на другую ногу и сравните ощущения.

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

1. Уберите светодиод и посмотрите поведение ноги осциллографом или даже вольтметром.

2. Перекиньте в программе управление на другую ногу и сравните ощущения.

По первому пункту - так и делаю, только не снимаю светодиод, замеряю уровень напряжения между ногой микросхемы до светодиода и землей, получаю всегда 4.5В независимо от того, что записано в порт - 0 или 1.

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

PORTB = i & (1 << PB3);
i = (i + 1) % 8;

i меняется от 0 до 7. А порт3, собака, сидит в третьем бите.

Что мешает написать нормальночитаемо и исполняемо:

PORTB|= _BV(3);
_delay_ms(500);
PORTB&= ~_BV(3);
_delay_ms(500);

Изменено пользователем солар

Я не раздаю удочки. Я продаю рыбу.

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

Всем спасибо за ответы, за минувшие сутки выяснил, что допустил все возможные ошибки - сначала перепутал полярность светодиода, потом оказалось, что сборку выполнял до получения .elf файла, а на микроконтроллер заливал каждый раз .hex файл, который оставался неизменным, что на меня не похоже - всю жизнь я программист, старость, что поделать...(

Все работает, тему можно закрывать

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

Погодите, погодите. Так как же это работает:?

PORTB = i & (1 << PB3);
i = (i + 1) % 8;

Не знаю, ошибку обнаружил когда уже заливал предложенный цикл... но по идее, это должно давать неравномерное мерцание

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

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

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

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

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

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

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

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

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

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

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