Реле Tianbo - ресурс 10 млн переключений

Код Си, подтягивающий резистор мк

Новичок
 
Регистрация: 24.09.2013
Сообщений: 37
Репутация: 11
1 17
0 0
 
06.10.2013 21:38 #1
Здравствуйте
Помогите разобраться с кодом

#include <avr/io.h>

int main(void)
{
DDRA =0b00000000;
DDRB =0b11111111;
PORTA =0b11111111;
while(1)
{
if (PINA ==0b11111111)
{PORTB =0b11111111;
}
else
{PORTB =0b00000000;
}

}
}
я понимаю это так

Порты А настроены на вход,
Порты Б на выход,
Порты А включены (как я понял при такой комбинации вкл. подтягивающие резисторы ),

если пины порта А все под внешнем напряжением +5 ,
то выполнять действие подать на все ножки порта Б +5 ,если нет
не подавать на ножки порта +5

но в протеусе он мне показывает другое посмотрите кому не лень в чем я ошибаюсь
Изображения
Тип файла: png результат.PNG (22.4 Кб, 0 просмотров)
Оценка
В многообразии литиевых батареек и аккумуляторов нет какого-то универсального или идеального варианта. Выбирая тот или иной вариант для питания устройства, разработчику приходится оперировать множеством параметров, используя наиболее оптимальное их сочетание для каждого приложения. Разберем параметры для различных приложений.
Новичок
 
Регистрация: 27.08.2011
Адрес: Екатеринбург
Сообщений: 18
Репутация: 12
2 0
0 0
 
06.10.2013 22:02 #2
Коротить надо на землю, ибо пин подтянут на +5, а кнопка опять на +5 замыкает.
квадратик красненький слева от кнопки как бэ намекает.
Если консультация по этому делу нужна заходи на сайт (в подписи) и в форме обратной связи укажи контакт. Договоримся.
Удачи.
__________________
Разработка ПО под ваши задачи.
Микроконтроллеры, микропроцессоры.
Трассировка печатных плат.
Разработка схемотехники.
Консультации в этих областях.

Приходите на наш сайт http://pcb-admin.ru
Наши разработки http://www.pcb-admin.ru/nashy-razrabotky
Оценка
Новичок
 
Регистрация: 24.09.2013
Сообщений: 37
Репутация: 11
1 17
0 0
 
07.10.2013 17:29 #3
т.е. когда подключаем подтягивающий резистор мы не можем на эти ножки подовать +5В (из вне) что ли?
Оценка
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,172
Записей в дневнике: 22
Репутация: 418
406 86
0 0
Отправить сообщение для Vadzz с помощью ICQ
 
07.10.2013 21:06 #4
Подавать то можно, но на ножке, если включен внутренний подтягивающий резистор, будет постоянно высокий уровень. Поэтому, при такой конфигурации, мы можем определять лог. 0 или изменение логического уровня (0->1, 1->0) на ножках мк Почитайте информацию, в вашем конкретном случае по микроконтроллерам AVR и в частности глава "порты вввода/вывода"...
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Оценка
Новичок
 
Регистрация: 24.09.2013
Сообщений: 37
Репутация: 11
1 17
0 0
 
08.10.2013 09:59 #5
Цитата:
Сообщение от Vadzz
Поэтому, при такой конфигурации, мы можем определять лог. 0 или изменение логического уровня (0->1, 1->0) на ножках мк
1->0 понятно через кнопку на землю можно,
а как понять 0->1 если там изначально 1 находится, и ножка под U ?
Оценка
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,172
Записей в дневнике: 22
Репутация: 418
406 86
0 0
Отправить сообщение для Vadzz с помощью ICQ
 
08.10.2013 12:10 #6
Ножка лишь подтянута к + питания... (делается это для того, чтобы она не "висела" в воздухе, т.к. логическое состояние на таком входе без подтягивающего резистора будет неопределенным и нестабильным)

Я имел ввиду, что если в исходном состоянии на ножке лог. 0 (к примеру кнопка замкнута на землю или кнопка нормально замкнутая), то мы при размыкании контактов кнопки, мы можем определить изменение уровня 0->1
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Оценка
Новичок
 
Регистрация: 24.09.2013
Сообщений: 37
Репутация: 11
1 17
0 0
 
08.10.2013 18:57 #7
если включен подтягивающий резистор, смысла нет туда подавать из вне +5В так получается??
Мы только можем замыкать на землю и менять пин порта на 0
Я все правильно понял?)
Оценка
Знаток
 
Регистрация: 06.12.2009
Адрес: Днепропетровск
Сообщений: 813
Репутация: 114
105 141
4 0
 
08.10.2013 20:06 #8
У вас мега16 настроена портА - на вход, порт В - выход. Следовательно вы порт А привязали в +5В подтяг резисторами, порт В - к земле. Таким образом после ининциализации порт А должен быть в лог 1, порт В - в лог 0. Логическая единица - это когда напряжение на порте стремится к напряжению питания, логический ноль - напряжение стремится к 0. Грубо говоря когда напряжение на МК 5В - лог 1, 0В - лог 0. Далее программа например будет опрашивать состояние скажем порта РА0, скажем при установке на нем лог 0 выполняется какоето дуйствие, ну скажем загорается светодиод. Но без подтягивающих резисторов порт контроллера будет находится в необределенном состоянии (Z состоянии) и тогда понять в каком лог состоянии он находится невозможно. Также состояние неопределенности может возникнуть если напрячжение на порте ввода (РА0) будет примерно 1/2Uпит. Грубо говоря нарпряжение выше 2.5В - 1, ниже - 0.
так вот, при включении подтягивающих резисторов на вход, порт контроллера будет в лог 1, следовательно для если дальнейшее выполнение команды происходит по очистке бита (в ассемблере это ком.sbic) порта РА0, то нужно подавать на вход лог 0. Тоесть кнопку на землю. В реальных же устройствах, бывает, что необходимо на порт устанавливать дополнительные резисторы, так как из-за наводок порт сомовольно начинает устанавливать состояние.
Оценка
Ответ
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 22:07.
Обратная связь РадиоЛоцман Вверх