|
|
  |
Загадочное число $20 при обращении к РВВ |
|
|
|
Jun 12 2012, 04:38
|

Группа: Участник
Сообщений: 9
Регистрация: 26-09-11
Из: Новокузнецк
Пользователь №: 67 380

|
В книге А.В.Евстифеева "Микроконтроллеры AVR семеййства Tiny и Mega фирмы ATMEL" на странице 391 есть любопытный абзац: "Необходимо только помнить, что если для обращения к регистру ввода/вывода используется команда обмена с ОЗУ, то к символическому имени требуется добавить число $20". Сам понять смысл этого действа не смог... Растолкуйте, пожалуйста, зачем и почему? Для чего таки надо добовлять эти самые $20 к имени РВВ?
|
|
|
|
|
Jun 12 2012, 05:17
|

Группа: Участник
Сообщений: 9
Регистрация: 26-09-11
Из: Новокузнецк
Пользователь №: 67 380

|
Как бы понятно что нужно тупо сместить на 20h... Непонятно почему, зачем? Может есть ссылка в даташитах?
Сообщение отредактировал serg_42 - Jun 12 2012, 05:19
|
|
|
|
|
Jun 12 2012, 07:33
|

Группа: Участник
Сообщений: 9
Регистрация: 26-09-11
Из: Новокузнецк
Пользователь №: 67 380

|
На странице 174 той-же книги нашел ещё одно упоминание про это:  Что-то теперь я совсем запутался. Допустим, имеем РОН TIMSK0. Для Atmega168 его адрес $6E, т.е. для команд IN и OUT он недоступен. В каком случае мы до него "достучимся" правильно (в 1-м или во 2-м)? 1) sts TIMSK0, temp 2) sts TIMSK0+$20, temp
|
|
|
|
|
Jun 12 2012, 07:42
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(serg_42 @ Jun 12 2012, 10:33)  В каком случае мы до него "достучимся" правильно (в 1-м или во 2-м)?
1) sts TIMSK0, temp
2) sts TIMSK0+$20, temp Зависит от того как определён TIMSK0. Если так(а по другому его нет смысла определять - он через IN/OUT недоступен): Код #define TIMSK0 0x6E то так: Код sts TIMSK0, temp
|
|
|
|
|
Jun 12 2012, 07:51
|

Группа: Участник
Сообщений: 9
Регистрация: 26-09-11
Из: Новокузнецк
Пользователь №: 67 380

|
Ok! Спасибо большое! Буду пробовать...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|