Например TDA7294

Форум РадиоКот • Просмотр темы - Atmega168A и PA
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пн июл 07, 2025 16:21:55

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


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



Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Atmega168A и PA
СообщениеДобавлено: Пн янв 16, 2017 20:27:40 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вот такой вопрос у меня возник. Под спойлером нарезка из ДШ.
СпойлерИзображение


Видно что в 168А нет команд jmp и call. Но тут же используется jmp в таблице векторов. Атемл студио 6 смело компиллит jmp в вектора и в дезасемблере видел команды call при выбранном камне 168A. Программа работает нормально, в железе.

Вопрос. В чем прикол? Ошибка ДШ. В ерате вроде этого нет или я не туда гляжу?

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Пн янв 16, 2017 22:51:04 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
После того как передали ATMEL микрочипу, даташиты переделали по одним им известным шаблонам. Из-за чего в даташитах на сайте ошибки, опечатки, неточности, нарезки из разных даташитов. Из-за этого я храню старые версии даташитов.
На будущее запомните. МК от 8 кб (то есть 16, 32 и так далее) поддерживают команды jmp и call. Начиная от 16 кб векторы таблицы прерывания по 2 слова, 4 байта. То бишь - jmp. Если пишете программу на ассмеблере, можно использовать и команду rjmp, но НЕ ЗАБЫВАЙТЕ, что вектор 4 байтный! Чтобы не нарваться на такой косяк используйте следующий шаблон:
Код:
// vectors_atmega32.inc

.cseg

.org   0x0000
      jmp   Reset

; ***** INTERRUPT VECTORS ************************************************
.org   INT0addr            ; External Interrupt Request 0
      reti ; jmp      EXT_INT0

.org   INT1addr            ; External Interrupt Request 1
      reti

.org   INT2addr            ; External Interrupt Request 2
      reti

.org   OC2addr               ; Timer/Counter2 Compare Match
//      jmp   TIMER2_COMP
      rjmp   TIMER2_COMP // Пример !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.org   OVF2addr            ; Timer/Counter2 Overflow
      reti

.org   ICP1addr            ; Timer/Counter1 Capture Event
      reti

.org   OC1Aaddr            ; Timer/Counter1 Compare Match A
      reti

.org   OC1Baddr            ; Timer/Counter1 Compare Match B
      reti

.org   OVF1addr            ; Timer/Counter1 Overflow
      reti

.org   OC0addr               ; Timer/Counter0 Compare Match
      reti ; jmp   TIMER0_COMP

.org   OVF0addr            ; Timer/Counter0 Overflow
      reti

.org   SPIaddr               ; Serial Transfer Complete
      reti

.org   URXCaddr            ; USART, Rx Complete
      reti

.org   UDREaddr            ; USART Data Register Empty
      reti

.org   UTXCaddr            ; USART, Tx Complete
      reti

.org   ADCCaddr            ; ADC Conversion Complete
      reti

.org   ERDYaddr            ; EEPROM Ready
      reti

.org   ACIaddr               ; Analog Comparator
      reti

.org   TWIaddr               ; 2-wire Serial Interface
      reti

.org   SPMRaddr            ; Store Program Memory Ready
      reti
;----------

;----------
.org   INT_VECTORS_SIZE      ; size in words
;===================


Я, когда писал на асме, делал такой файл на каждый используемый мк. Таблица берется из заголовочного файла на конкретный мк. Фишка в том, что .org не дает ошибиться в адресации. Ставим двухсловную команду, мы впаковываемся до следующей .org. Ставим однословную команду, компилятор следующий вектор определяет правильно адрес следующей org.

Код:
//----------
[] - jmp 0x0000
[] -        0x0001

[] - следующий вектор 0x02
[] -
//----------
[] - reti  0x0000
[] - 0xff (заглушка) 0x0001

[] - следующий вектор 0x02
[] -
//----------


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Пн янв 16, 2017 23:58:27 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Demiurg писал(а):
Из-за этого я храню старые версии даташитов.
В старом нет такой сноски на данные команды?

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 00:28:35 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
С чего вы вообще взяли, что команды не поддерживаются? Перечитайте внимательно то, что читали.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 00:31:19 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
Note: 1. These instructions are only available in ATmega168PA and ATmega328P.
Не получается у меня по другому перевести эту фразу.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 00:38:53 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
Яндекс переводчик: Эти инструкции доступны только для микроконтроллеров atmega168pa и схема atmega328p.


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

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 00:41:28 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Никакого тут яндекса не надо чтобы это понять. Данная запись указывать, что данные инструкции недоступны для Atmega168A и Atmega328.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 00:43:19 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
AVR-Studio 4.19
Код:
;===================
.nolist
.include   "m168Adef.inc"
.list
;===================

jmp Reset

Reset:
jmp Reset

Компилируется без проблем.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 00:44:38 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я говорил что не компилируется?

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 00:46:17 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
Короче, я вам написал насчет МК выше 8 кб. Ищите старые версии даташитов. Скорее всего вы их найдете в дисках AVR Technical Library.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 00:48:31 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вы сказали что у Вас есть старые версии. Потому и спросил у Вас есть в старой такая сноска или нет.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 00:58:01 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
Ищу

Добавлено after 1 minute 59 seconds:
Могли бы и сами уже скачать avr technical library dvd за 2008-2010 год к примеру. Я сейчас этим и занимаюсь...

Добавлено after 6 minutes 57 seconds:
Это что по вашему? На будущее. Исходите из здравого смысла. Выше 8 кб - поддержка jmp и call. Это аксиома.


Вложения:
atmega168a.jpg [97.58 KiB]
Скачиваний: 330
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 01:02:37 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Demiurg писал(а):
Исходите из здравого смысла.
По-моему здравый смысл - это четкое соблюдение ДШ, без догадок. Вот я и спрашивал у форумчан, ошибка или это, есть ли где указание на нее.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 01:06:15 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
На заборе бывает загадочная формула написана. И что? Будем неукоснительно следовать формуле?
Здравый смысл - rjmp и rcall - адресация на 4 кб. На ассемблере вы заколупаетесь выстраивать программу в соответствии с опечаткой в даташите.
Ваша ошибка еще и в том, что вы плохо пробежались дальше по даташиту.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 08:08:40 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 235
Зарегистрирован: Пт янв 29, 2010 10:27:40
Сообщений: 3863
Откуда: Москва
Рейтинг сообщения: 3
Z_h_e писал(а):
Никакого тут яндекса не надо чтобы это понять. Данная запись указывать, что данные инструкции недоступны для Atmega168A и Atmega328.

Смысл этой фразы в даташите в том, что инструкции доступны не относительно букв A-PA, а относительно ядер 48-88-168-328, т.к. даташит обычно общий на несколько моделей контроллеров. Т.е. в данном случае эти команды отсутствуют в 48 и 88 контролерах, независимо от того, есть там буква на конце или нет.
Вы же наверно знаете, что буквы в конце модели говорят в о корпусе или энергопотребелнии, на которые ассемблеру по барабану? Ему важна только адресуемая память, а это как раз циферки.

_________________
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)


Последний раз редактировалось Engineer_Keen Вт янв 17, 2017 08:17:26, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 08:12:20 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Нее. Явная опечатка. Это ж технический документ. Я ее и понял как написано и видел русский сайт, где тоже так поняли.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega168A и PA
СообщениеДобавлено: Вт янв 17, 2017 09:47:32 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15071
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Согласно 2545T–AVR–05/11
(8-bit Atmel
Microcontroller
with 4/8/16K
Bytes In-System
Programmable
Flash
ATmega48/V
ATmega88/V
ATmega168/V)
"These instructions are only available in Atmel ATmega168" - это относительно JMP и CALL
Правда у тех 48/88/68 еррат... :facepalm:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


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

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


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