Здравствуйте, столкнулся с такой проблемой спаял не большую платку и для индикации работы микроконтроллера подсоединил светодиод к одному порту. Так вот теперь не как не могу заставить его гореть =)))))))) код простейший вывести 1 на все ноги порта D пони прог говорит что программируется и всё ок мерю напряжения на ногах контроллера на каждом по разному от 0.1 до 0.4В а у порта B где-то и по 1В есть питание мерил 4.5В подаётся.
.def temp = r16 ; Определение главного рабочего регистра .def rab = r17 ; Определение рабочего регистра .cseg ; Выбор сегмента программного кода .org 0 ; Устанеовка текущего адреса на ноль ;---------- Инициализация портов ВВ lDI temp,0xFF out DDRD,temp ; Записываем 11111111 в DDRD (порт PD на выход) out PORTD, temp ; Записываем его же в PORTD (включаем внутр. резисторы) ;---------- Начало основного цикла программы LDI rab,0xff main: out portD,rab rjmp main
Собрал только левую часть индикатор ещё не припаян
Вы про светодиод ? я его 3 раза перепаивал =) теперь правильно стоит, но я всё равно мерю напряжение на ногах контроллера а там оно как-то маленькое =(
хи-хи... наиболее распространенный вариант: +питания -> резистор токоограничитель -> анод светодиода -> катод светодиода -> вывод микросхемы светодиод включен при логическом нуле выданном в соответствующий бит порта тогда можно гарантировать, что на выводе порта будет где-то 0,4-0,8 вольта и от при "статическом" состоянии ежли подан какой либо меандр - обычный вольтметр ничего путнего не покажет
pokk, Вы сконфигурировали весь порт D на ВЫХОД, о каких подтягивающих резисторах может идти речь в коде? Более того, Вы выставили 1 на всех ногах, включая те, на которых кнопки. Кнопки, которые подключены к земле. Не трудно догадаться, что будет при нажатии на кнопку...
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
pokk, Вы сконфигурировали весь порт D на ВЫХОД, о каких подтягивающих резисторах может идти речь?
Это была скорее всего опечатка (взял старый код а комментарии не изменил). Вот по таблице из даташита на ATTINY2313 на стр 47 DDxn=1 PORTxn=1 Output High (Source) как я понял на выходе порта логическая единица
Цитата:
Более того, Вы выставили 1 на всех ногах, включая те, на которых кнопки. Кнопки, которые подключены к земле.
Кнопки я почти не трогал =)) но было дела как пару раз нажал не знаю в какой прошивки
Цитата:
Не трудно догадаться, что будет при нажатии на кнопку...
Пойдёт ток =))))) Получается у меня эти два пина умерли ?
То что Вы даташит читаете, это конечно очень хорошо. И конфигурацию Вы поняли верно.
pokk писал(а):
Пойдёт ток =)))))
Угу. Короткого замыкания. Попробуйте на другой порт светик перебросить, код-то верный. Правда основной цикл можно и пустым оставить, Вы уже записали в порт
Код:
out PORTD, temp ; Записываем его же в PORTD (выставив 1 на всех пинах порта)
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
но реакции не какой это не дало. решил проверить fuse при нажатии на кнопку считывания оба этих светодиода мигнули 2 раза после я изменил код так что бы только один определённый загорелся и при считывании fuse один и мигнул как и надо было. так же они мигают при выполнении любой операции в пони прог. изредка мигают когда подсоединяю разъём =) что-то мне тут кажется с тактовым сигналом не то (у меня правда у кварца одного кондёра нету =)),но так как мк программируется и считывает значит он работает от внутреннего генератора ) с фьюзами я уже по баловался не много не какого результата не дало CKSEL3..0=0100 внутренний RC генератор
Да, если программатор МК видит, то с тактирование все нормально. Питание МК-то в норме? А то вот это
pokk писал(а):
...они мигают при выполнении любой операции в пони прог...
на паразитное питание похоже...
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Я немного про другое. Вывод Reset МК (1) к плюсу питания подтянут через резистор?
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Т.е у меня была проблема в то что пин reset находился в высокоомном состоянии и ловил помехи и соответственно мк каждый раз перезагружался или даже не включался. А при программировании от программатора подавался сигнал логической единички и на короткое время мк выполнял программу так ?
Вот и замечательно. Вообще у МК есть встроеный резистор на этой линии, но его номинал слишком высокий, чтобы нормально удержать линию. Потому обязательно нужно подтягивать внешним резистором. Как правило, достаточно 10К.
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения