Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопросы начинающего 
:(
    Опции темы
Кристиан
Дата 2.2.2007, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.2.2007
Где: АР Крым. Севастоп оль.

Репутация: нет
Всего: нет



Приветствую!

Появилось новое хобби - цифровая электроника. В частности микроконтроллеры.

Начал изучение с книги "Мортон Д. - Микроконтроллеры AVR. Вводный курс."
Впечатление от этой книги было крайне положительное, пока не остановился на одном простом месте, на котором окончательно запутался..
Собственно, причина:

Во вложении простейшая схема(из книги), на которой вывод PB0 отвечает за включение/выключение светодиода, а вход PD0 - за проверку нажатия кнопки. На PD0 устанавливается подтяжка. С PB0 вроде бы все понятно: если подана лог.1, то светодиод не горит, если же на PB0 подать лог.0, то идет ток и светодиод загорается. А вот как быть с PD0 и кнопкой? В книге поданы, на мой взгляд, два абсолютно противоположных примера, хотя автор говорит, что они действуют одинаково.
Вот ключевые фрагменты примеров.
Первый:

Start:
sbis PinD, 0    ; Проверяем, нажата ли кнопка
rjmp LEDoff
sbi PortB, 0    ; Включаем СИД
rjmp Start

LEDoff:
cbi PortB, 0    ; Выключаем СИД
rjmp Start

Прочтя этот код я уже несколько удивлен: почему СИД в этой программе включается и выключается с точностью до наоборот моим предположениям?
Второй пример, по-моему, противоречит первому. Он делает то же самое, что и первый, но не использует блоки условий. Вот он:

Start:
in temp, PinD    ; Считываем состояние кнопки
out PortB, temp    ; Изменяем состояние СИД
rjmp Start

Я не понимаю как отражается нажатие кнопки на вход PD0. Почему когда кнопка не нажата на входе PD0 должна быть лог.1, ведь в этот момент ножка ни к чему не подключена? Сначала думал, что это из-за подтяжки, но симулятор в AVR Studio показывает, что там 0.

В общем, эта проблема не дает мне перейти к практике. Помогите разобраться.

Заранее благодарен.

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  circuit.JPG 15,19 Kb
PM MAIL ICQ   Вверх
Romikgy
Дата 2.2.2007, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Кристиан @  2.2.2007,  22:07 Найти цитируемый пост)
rjmp LEDoff

а здесь разве не условный переход должен быть?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Кристиан
Дата 3.2.2007, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.2.2007
Где: АР Крым. Севастоп оль.

Репутация: нет
Всего: нет



Цитата

а здесь разве не условный переход должен быть? 


Нет, так как здесь в качестве условного блока используется sbis.
Суть команды sbis - пропустить следующую инструкцию, если бит в регистре установлен.
PM MAIL ICQ   Вверх
Romikgy
Дата 3.2.2007, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Кристиан @  2.2.2007,  22:07 Найти цитируемый пост)
sbi PortB, 0    ; Включаем СИД

set bit - установка бита, но при установке сид потухнет
Цитата(Кристиан @  2.2.2007,  22:07 Найти цитируемый пост)
cbi PortB, 0    ; Выключаем СИД

clear bit - значит загорится, 
имхо коментарии местами перепутаны

Добавлено @ 00:24 
и еще я бы подтянул бы кнопку резюком к плюсу, а то не всегда может воспринимать лог 1 по обрыву.... имхо


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Кристиан
Дата 3.2.2007, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.2.2007
Где: АР Крым. Севастоп оль.

Репутация: нет
Всего: нет



Romikgy
Цитата

имхо коментарии местами перепутаны

Неужели тогда автор напутал и при именовании метки LEDoff?

Цитата

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

Подтяжка к входу PD0? Она включена(написано в первом посте). Но я не очень понимаю смысл этого действия, зачем она нужна? Чтобы при отсутствии тока на входе была лог.1, а при нажатии кнопки - лог.0 ? Объясни, если не сложно.
PM MAIL ICQ   Вверх
cardinal
Дата 3.2.2007, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



А вообще поконкретней название темы придумывать надо!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Кристиан
Дата 3.2.2007, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.2.2007
Где: АР Крым. Севастоп оль.

Репутация: нет
Всего: нет



cardinal
Название темы придумывал в расчете на то, что здесь буду задавать все свои вопросы по ходу продвижения в этой области.
PM MAIL ICQ   Вверх
sergejzr
Дата 3.2.2007, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Модератор: Пожалуйста, один топик - один вопрос.
и соответственно
Модератор: Название темы должно отражать ее суть!

Вообще, перед началом неплохо бы и правила почитать  smile 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Romikgy
Дата 3.2.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Кристиан @  2.2.2007,  23:39 Найти цитируемый пост)
Неужели тогда автор напутал и при именовании метки LEDoff?

я не знаю, я этой книги не читал....
я сужу по логике вещей (если не забыл асм ) 
Цитата(Кристиан @  2.2.2007,  23:39 Найти цитируемый пост)
Чтобы при отсутствии тока на входе была лог.1, а при нажатии кнопки - лог.0 ? Объясни, если не сложно. 

лог 1 == +5 вольт в идеале (ну или в зависимости от логики)
так вот при высокоимпедансном состоянии входа, (по идее) должно определятся как лог 1, но в силу разных обстоятельств может стать нулем, и тогда буш долго искать косяк, дабы такого не было его специально подтягивают к лог 1


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Кристиан
Дата 3.2.2007, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.2.2007
Где: АР Крым. Севастоп оль.

Репутация: нет
Всего: нет



Вопрос решен.
Автор книги и переводчики немного перемудрили.
PM MAIL ICQ   Вверх
Metal_Heart
Дата 5.2.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 1
Всего: 12



Цитата(Кристиан @  2.2.2007,  23:07 Найти цитируемый пост)
Во вложении простейшая схема(из книги), на которой вывод PB0 отвечает за включение/выключение светодиода, а вход PD0 - за проверку нажатия кнопки. На PD0 устанавливается подтяжка. С PB0 вроде бы все понятно: если подана лог.1, то светодиод не горит, если же на PB0 подать лог.0, то идет ток и светодиод загорается.


Светодиод будет гореть при:
 - лог.1:  если он подключен анодом к порту, а катодом - на "землю"
или
 - лог.0:  если он подключен катодом к порту, а анодом - на "+Ep"

судя по описанию, то подходит как раз второй случай:
Цитата(Кристиан @  2.2.2007,  23:07 Найти цитируемый пост)
 если же на PB0 подать лог.0, то идет ток и светодиод загорается.

Смотри схему

Это сообщение отредактировал(а) Metal_Heart - 5.2.2007, 10:22


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.1093 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.