|
вопрос, про замыкание ног МК |
|
|
|
Dec 3 2006, 21:37
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(prottoss @ Dec 3 2006, 20:57)  Интересно, зачем такие выкрутасы нужны? Неужели нет возможности решить задачу внутри МК? PS: ИМХО таких задач нет!!! Хм, я использую... А почему? Хм... Обычно на момент проектирования печатной платы не до конца ясен принцип обработки некоторых входных сигналов. То ли АЦП, то ли компаратор, то ли прерывание по изменению уровня, то ли логика захвата, то ли просто считывание, то ли вход таймера. Каак заведу на все входы! А потом выбираю спокойно :-) Да и с выходными точно так же.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Dec 3 2006, 21:54
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(Dog Pawlowa @ Dec 4 2006, 01:37)  Хм, я использую... А почему? Хм... Обычно на момент проектирования печатной платы не до конца ясен принцип обработки некоторых входных сигналов. То ли АЦП, то ли компаратор, то ли прерывание по изменению уровня, то ли логика захвата, то ли просто считывание, то ли вход таймера. Каак заведу на все входы! А потом выбираю спокойно :-) Да и с выходными точно так же. А я это делаю это еще спокойнее с помощью бумаги, карандаша. Т.е. сначала думаю, потом паяю. Цитата(skilful @ Dec 4 2006, 01:43)  Только я уже запутался. Что тут понимать то? Всего четыре сосны: 1 Сосна: DDR = 0, PORT = 0 - вход, он же просто нога МК в высокоипедансном состоянии 2 Сосна DDR = 0, PORT = 1 - вход с подтяжкой пуллап-резистором к шине питания 3 Сосна DDR = 1, PORT = 0 - выход, установлен уровень лог. ноль 4 Сосна DDR = 1, PORT = 1 - выход, установлен уровень лог. единицы
--------------------
|
|
|
|
|
Dec 3 2006, 23:02
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(prottoss @ Dec 3 2006, 20:57)  Цитата(skilful @ Dec 4 2006, 00:30)  Добрый день. Хочу спросить у участников форума - возникла необходимость соединить несколько ног МК (одного порта). Необходимо, допустим, подавать сигнал на PB0, а снимать с PB3, PB4. Для этого необходимы следующие настройки порта:
DDRB = 00000000 b PORTB = 00000001 b
Подскажите пожалуйста так будет правильно делать? Интересно, зачем такие выкрутасы нужны? Неужели нет возможности решить задачу внутри МК? PS: ИМХО таких задач нет!!! Вот для примера задача. Устройство работает с синхронизацией от сети (лампочками мигает), прерывание заведено на INT0, а заказчик говорит, вот бы еще и без синхронизации работало (мигать светодиодами). Так я нароил шим внутри на 50 гц и выдал на ножку (аппаратно), соседнюю с INT0. Заказчик, когда нужна сеть, ведет сигнал от сети, когда не нужна - замыкает две соседние ножки.
|
|
|
|
|
Dec 3 2006, 23:21
|
Частый гость
 
Группа: Свой
Сообщений: 186
Регистрация: 23-04-06
Из: Сочи
Пользователь №: 16 411

|
Цитата(Kovrov @ Dec 3 2006, 20:46)  главное чтобы не соединять ноги от 2х и более портов настроенных на вывод если нужен такой вариант то цепляйте резистор(Ы). в вашем случае все порты настроены на ввод + включен подтягивающий резистор на PB0 напомню что направление портов есть DDRx 1= out 0=in Тогда будет DDR = 0000 0000 PORT = 0000 0001 ???
Сообщение отредактировал skilful - Dec 3 2006, 23:21
|
|
|
|
|
Dec 4 2006, 00:15
|

Участник

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401

|
Посмотрите таблицу: Код +--------+-----+--------+------+ |reg\mode| inp | inp up | outp | +--------+-----+--------+------+ |DDRx.y | 0 | 0 | 1 | |PORTx.y | 0 | 1 | a | +--------+-----+--------+------+ |PINx.y | Z | 1 | a | +--------+-----+--------+------+
, где x - имя порта (например "B", тогда DDRB, PORTB, PINB), y - номер пина (мы помним что каждому пину порта соответствует один бит в регистрах направления (DDR), порта (PORT), реального состояния (PIN))
Z - высокоимпедансное состояние, если на пине нет ни какого сигналла (ни к чему не подключен) обычно читается как 0, но из-за помех вполне возможно прочитать как 1.
a - от состояния бита зависит состояние выхода (0/1)
inp - обозначает режим при котором пин работает на вход, высокоимпедансный вход
inp up - обозначает режим при котором пин работает на вход, но подтянут внутренним резистором (60-150 кОм) к шине питания МК. читается как 1, если что-нибудь не притянет к земле... :)
outp - выход, состояние пина зависит от значения записанного в PORTx.y
напомню что регистр PINx доступен только для чтения! и содержит реальное состояние этого пина. Удачи  Add: Хм пока писал....
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|