Например TDA7294

Форум РадиоКот • Просмотр темы - AVR Studio 4 - не могу разобраться с направлением портов!
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт июл 01, 2025 11:18:30

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 21 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: AVR Studio 4 - не могу разобраться с направлением портов!
СообщениеДобавлено: Сб окт 13, 2007 07:02:37 
Первый раз сказал Мяу!

Зарегистрирован: Сб окт 13, 2007 06:14:07
Сообщений: 24
Рейтинг сообщения: 0
Всем привет! Помогите пожалуйста разобраться с регистрами DDRx в AVR Studio 4. Привожу следующий отрывок кода:


Код:
.include "1200def.inc"

.ORG   000
      rjmp reset
reset:
      ldi r31,$1f
      out ddrb,r31
      ldi r31,$61
      out portb,r31
      rjmp scan
scan:
      sbis pinb,6
      rjmp left
      sbis pinb,5
      rjmp right
      rjmp scan
left:
      rjmp scan
right:
      rjmp scan


И так, выводя в DDRB число $1f (то есть 0b00011111) я задаю работу выводов PORTB pin 0 по pin 5 как выходы, а 6, 7 и 8 соотв. как входы. Но, во время симуляции, при выводе числа $61 (0b01100001) в PORTB (см. код), в регистр PINB считывается PORTB pin 0 вместо заданных как входы PORTB pin 5 и pin 6, в результате чего блок с месткой scan отрабатывает прыжок на метку left (чего в принципе не требуется). Если попытаться инверсировать число вводимое в регистр DDRB, то есть вместо $1f ввести $e0 (при этом направление портов тоже инвертируются), то все работает как надо, но остается вопрос, а как же с направлениями портов, ведь теперь они заданы наоборот? Может в AVR Studio надо где-то задавать правильную работу DDRx? В чем здесь ошибка?

Спасибо за помощь!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 13, 2007 10:34:35 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср сен 19, 2007 10:26:43
Сообщений: 139
Откуда: Украина,Черновцы
Рейтинг сообщения: 0
Я ника не могу понять что надо, обьяснение запутанное.
Но могу заметить,что если вывод порта работает, как вход, то значение с него считывается внешнее, то есть от внешнего сигнала.
Надеюсь, помог.

_________________
Не напрягайся - перезагрузись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 13, 2007 10:39:48 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Я думаю вы не правы ! и путаете спрашивающего.
С порта всегда читается то что туда записали а до записи считываются нули. Устройство ножки смотрите по ссылке выше.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 13, 2007 14:30:18 
Первый раз сказал Мяу!

Зарегистрирован: Сб окт 13, 2007 06:14:07
Сообщений: 24
Рейтинг сообщения: 0
Насчет кода. Одним словом в AVR Studio, в PINB ничего не передается со входов, когда пины настроены на вход (да да, ВХОД), и наоборот передается, когда они настроены как выходы! Вот это и создает неурядицу.

Если не трудно, прогоните его под AVR Studio, и все станет ясно.


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 13, 2007 18:40:37 
Первый раз сказал Мяу!

Зарегистрирован: Сб окт 13, 2007 06:14:07
Сообщений: 24
Рейтинг сообщения: 0
Ребята, БОЛЬШОЕ всем спасибо!!! Теперь понял, а то у меня создалась путаница в голове. Мне казалось, что при конфигурации порта как "вход", в PINx должно записываться то, что на данный момент записано в PORTx, а в случае выхода туда вообще ничего не пишется, в чем я и ошибался! Вы мне все прояснили. Теперь я знаю, что во время симуляции мне надо самому вручную выставлять или снимать биты на PINB.6 и PINB.5, чтобы как бы эмулировать состояние физических выводов! Еще раз всем спасибо за помощь. tych, прости что сразу не заметил кнопку www - я тут лишь с сегодняшнего дня, с непривычки видимо. :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 13, 2007 19:01:17 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пт авг 31, 2007 19:58:52
Сообщений: 391
Откуда: Украина, Сум обл., г. КоНоТоП
Рейтинг сообщения: 0
Прекрасная картинка с обучалки
Изображение

_________________
Бригада дежурных телепатов ответит на ваши вопросы


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 13, 2007 19:28:01 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Картинка великолепная ! НЕ ПРАВИЛЬНАЯ конечно. Но прикольно и красочно сделано :lol: В мурзилку хорошо подошла бы.
Вот схема ножки AVR и регистров близкая к реальности
Изображение

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 13, 2007 21:04:47 
Модератор
Аватар пользователя

Карма: 27
Рейтинг сообщений: 58
Зарегистрирован: Пн апр 03, 2006 11:43:25
Сообщений: 4517
Откуда: Санкт - Петербург
Рейтинг сообщения: 0
Медали: 3
Получил миской по аватаре (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Короче говоря, тему я почистил. :)

Подведем итоги. PINx и PORTx - разные регистры МК. Соответственно, PINx содержит логические уровни на соответствующих выводах МК, PORTx хранит записанное туда вами. PORTx читается всегда одинаково (до тех пор пока вы его сами не перепишете), вне зависимости от изменения внешних сигналов, если мы хотим следить за происходящим во внешнем мире - читаем PINx. Регистр DDRx определяет направление порта в том смысле, что блокирует передачу на выход уровней PORTx, если порт настроен на вход. Примерно так. Несколько упрощенно, но, думаю, понятно. :)

_________________
Оптимизм х (Опыт + Знания) = const


Последний раз редактировалось Aheir Вс окт 14, 2007 11:55:09, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 13, 2007 22:21:17 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пт авг 31, 2007 19:58:52
Сообщений: 391
Откуда: Украина, Сум обл., г. КоНоТоП
Рейтинг сообщения: 0
Ну то что озвучил Aheir изображено в обучалке

_________________
Бригада дежурных телепатов ответит на ваши вопросы


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 13, 2007 22:30:00 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
kamikadze писал(а):
Ну то что озвучил Aheir изображено в обучалке


И чё Aheir написал что DDRx отключает PINx ? Так ведь нарисовано на картинке из обучалки. А ножка является входом при "1" в битах DDRx ? :shock: :shock: :shock:

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс окт 14, 2007 08:18:38 
Первый раз сказал Мяу!

Зарегистрирован: Сб окт 13, 2007 06:14:07
Сообщений: 24
Рейтинг сообщения: 0
Точно, картинка неправильная и неполная, вот с нее-то и началась моя путаница! А кто писал обучалку? Посоветуем ему исправить картинку.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс окт 14, 2007 08:26:36 
Первый раз сказал Мяу!

Зарегистрирован: Сб окт 13, 2007 06:14:07
Сообщений: 24
Рейтинг сообщения: 0
Цитата:
Короче говоря, тему я почистил. Smile

Подведем итоги. PINx и PORTx - разные регистры МК. Соответственно, PINx содержит логические уровни на соответствующих выводах МК, PORTx хранит записанное туда вами. PORTx читается всегда одинаково (до тех пор пока вы его сами не перепишете), вне зависимости от изменения внешних сигналов, если мы хотим следить за происходящим во внешнем мире - читаем PINx. Регистр DDRx определяет направление порта в том смысле, что блокирует передачу на выход уровней PORTx. Примерно так. Несколько упрощенно, но, думаю, понятно. Smile


Да, в полне понятно, но чтобы звучало полноценно, я бы еще отметил, что DDRx "блокирует" передачу уровней в случае, когда он определяет направление порта, как вход.

Не так ли, ведь при выходе ничего не блокируется)?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс окт 14, 2007 09:59:37 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Alex T. писал(а):
Точно, картинка неправильная и неполная, вот с нее-то и началась моя путаница! А кто писал обучалку? Посоветуем ему исправить картинку.


ИМХО бесполезно. Примерно год назад я уж пытался советовать исправить.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс окт 14, 2007 10:00:43 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Alex T. писал(а):
я бы еще отметил, что DDRx "блокирует" передачу уровней в случае, когда он определяет направление порта, как вход.


На чб рисунке ИМХО всё очевидно и ясно.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс окт 14, 2007 12:01:43 
Модератор
Аватар пользователя

Карма: 27
Рейтинг сообщений: 58
Зарегистрирован: Пн апр 03, 2006 11:43:25
Сообщений: 4517
Откуда: Санкт - Петербург
Рейтинг сообщения: 0
Медали: 3
Получил миской по аватаре (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Alex T. писал(а):
...я бы еще отметил, что DDRx "блокирует" передачу уровней в случае, когда он определяет направление порта, как вход...


Добавил. :)
Последние наши посту здесь особого смысла не имеют, так что если никто не против, через пару дней устроим еще одну чистку темы.
Насчет обучалки - попробуем решить.

_________________
Оптимизм х (Опыт + Знания) = const


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс окт 14, 2007 12:43:01 
Первый раз сказал Мяу!

Зарегистрирован: Сб окт 13, 2007 06:14:07
Сообщений: 24
Рейтинг сообщения: 0
Я не против.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс окт 14, 2007 13:13:10 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Aheir писал(а):
Последние наши посту здесь особого смысла не имеют, так что если никто не против, через пару дней устроим еще одну чистку темы.


Я против - всего лишь 1 голос. ИМХО много места они не занимают, а вот как тернист путь к истине показывают наглядно.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 15, 2007 14:02:51 
Говорящий с текстолитом
Аватар пользователя

Карма: 5
Рейтинг сообщений: 4
Зарегистрирован: Пн авг 22, 2005 21:02:22
Сообщений: 1529
Откуда: Питер
Рейтинг сообщения: 0
Тыч, обучалку по контроллерам писал я.
Картинку может и можно в мурзилку. Но она наглядно и без лишних тонкостей объясняет работу ПВВ. Начинающих совсем не обязательно грузить сложными схемами. Я могу привести твою схему ниже в качестве допматериала, но объяснять по ней я ничего не смогу.

_________________
Лучше быть первым в деревне, чем вторым в Риме


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 15, 2007 16:42:43 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Serega писал(а):
Тыч, обучалку по контроллерам писал я.
Картинка наглядно и без лишних тонкостей объясняет работу ПВВ.


Но она не правильная !

1. По ней проискодит отключение ножек МК от регистра PIN - а это не правильно. Он всегда подключен и в нем всегда отражаются уровни на ножках.

2. так как регистр DDR ты поместил снизу получается что ножка ВХОД когда бит в DDR равен "1" - а на самом деле наоборот.

Почему не нарисовать простой наглядный рисунок но ПРАВЕЛЬНЫЙ ???

Serega писал(а):
Начинающих совсем не обязательно грузить сложными схемами.


и ВОВСЕ НЕ ДОПУСТИМО грузить не верными схемами.

Serega писал(а):
Я могу привести твою схему ниже в качестве допматериала, но объяснять по ней я ничего не смогу.


Тебе не нужно объяснять, объяснение там где она опубликована.

Картинка, схема должна быть правильной, но в любом дш и апноуте к схемам приложены текстовые пояснения - это нормально.

Я думаю тебе не трудно нарисовать правильно - так как в МК и не сложно - т.е. условную схему.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 15, 2007 16:56:11 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Serega писал(а):
но объяснять по ней я ничего не смогу.


Ага... так я и поверил :lol: :lol: :lol: "обучалку написал но схем читать не умею".

"НУ ни как" не сообразить что DDRB.1 управляет переключателем и "1" он верху а "0" он внизу. Ну ни в жисть не догадаться. Да ?

Всё как-то в тумане ...

Ну то что сигнал с PB1 - по СТРЕЛОЧКЕ ! - поступает в PINB.1 ВСЕГДА это конечно ребус афигительный.

И уж ни как нельзя понять что "1" или "0" из PORTB.1 - по СТРЕЛОЧКЕ ! - поступает либо прямо на PB1 когда в DDRB.1 есть "1" либо в виде подтяжки через диод и резистор примерно 40 ком когда в DDRB.1 есть "0"

Диод не дает "0" в PORTB.1 тянуть в низ ногу PB1 - подтяжка выключена.

Блин ! Ну такая сложная схема ... Оййой ...

Изображение

А помню кто-то доказывал как важно новичку знать как устроен транзистор ! А эта схема выходит его "загрузит". Т.е. пытаясь изучить МК - не грузись устройством его ног ! - весело :lol: :lol: :lol:

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 21 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y