C atmega128 на atmega1281

Обсуждаем контроллеры компании Atmel.
Ответить
IOZ
Родился
Сообщения: 12
Зарегистрирован: Пн апр 07, 2014 19:46:10

C atmega128 на atmega1281

Сообщение IOZ »

Перевожу исходник на CodeVision с atmega128 на atmega1281, заменил заголовочные файлы, mega128.h на mega1281.h. Но при компиляции возникают ошибки: 'undefined symdol TIMSK' и 'undefined symdol ETIMSK'. Подскажите пожалуйста, что можно сделать?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: C atmega128 на atmega1281

Сообщение Gudd-Head »

IOZ писал(а):Подскажите пожалуйста, что можно сделать?
Лол. Посмотреть как эти регистры обзываются в 1281.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
IOZ
Родился
Сообщения: 12
Зарегистрирован: Пн апр 07, 2014 19:46:10

Re: C atmega128 на atmega1281

Сообщение IOZ »

Дело в том, что эти регистры в заголовочном файле mega1281.h отсутствуют, может я что-то не понимаю :dont_know:
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: C atmega128 на atmega1281

Сообщение Kavka »

IOZ, тебе же ответили, посмотрите, как эти регистры (аналогичные по функциональности) называются у 1281.
Спецификация на оба МК в помощь.
atmega128, atmega1281
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
IOZ
Родился
Сообщения: 12
Зарегистрирован: Пн апр 07, 2014 19:46:10

Re: C atmega128 на atmega1281

Сообщение IOZ »

В atmega128 ETIMSK и TIMSK используются, для работы с таймером. В atmega1281 есть TIMSK0, TIMSK1 TIMSK2. Мне не понятна аналогия.
Jonson1974
Открыл глаза
Сообщения: 55
Зарегистрирован: Сб мар 30, 2013 19:59:37

Re: C atmega128 на atmega1281

Сообщение Jonson1974 »

IOZ писал(а):В atmega128 ETIMSK и TIMSK используются, для работы с таймером.

Не с таймером, а с таймерАМИ. В документации, ссылку на которую Вам дали ранее, есть подробное побитовое описание обоих регистров. Оба эти регистра управляют прерываниями сразу от нескольких таймеров.
IOZ писал(а):В atmega1281 есть TIMSK0, TIMSK1 TIMSK2

А в 1281-ой для каждого таймера ввели свой регистр управления прерываниями. Кстати, у нее есть и TIMSK3 и TIMSK4 и TIMSK5.

Кстати, у 1281 - 6 таймеров (два 8-ми битных и четыре 16-ти битных), а у 128-ой - всего 4.
IOZ
Родился
Сообщения: 12
Зарегистрирован: Пн апр 07, 2014 19:46:10

Re: C atmega128 на atmega1281

Сообщение IOZ »

Спасибо, с этим разобрался. Пробую переделывать c atmega128 на 1281 другую программку, теперь всплывает другая ошибка(прикрепил во вложении). Что это может быть?
Вложения
67.png
(7.31 КБ) 571 скачивание
Jonson1974
Открыл глаза
Сообщения: 55
Зарегистрирован: Сб мар 30, 2013 19:59:37

Re: C atmega128 на atmega1281

Сообщение Jonson1974 »

IOZ писал(а):Спасибо, с этим разобрался. Пробую переделывать c atmega128 на 1281 другую программку, теперь всплывает другая ошибка(прикрепил во вложении). Что это может быть?

Двойное определение идентификатора PINF. Где-то ранее по тексту (в файле mega128.h или в каком-нить другом) уже встречается определение #define PINF
IOZ
Родился
Сообщения: 12
Зарегистрирован: Пн апр 07, 2014 19:46:10

Re: C atmega128 на atmega1281

Сообщение IOZ »

Jonson1974 писал(а):Двойное определение идентификатора PINF. Где-то ранее по тексту (в файле mega128.h или в каком-нить другом) уже встречается определение #define PINF

Двойное определение с файлом mega128.h. Я с #include везде убрал(во всех файлах проекта) mega128.h, вместо прописал mega1281.h. Но почему на него идёт ссылка?
Jonson1974
Открыл глаза
Сообщения: 55
Зарегистрирован: Сб мар 30, 2013 19:59:37

Re: C atmega128 на atmega1281

Сообщение Jonson1974 »

Я не силен в среде CodeVision, по этому подсказать ничего не смогу.
Разве что совет (как сделал бы я) - найдите сам файл mega128.h и временно переименуйте его в _mega128.h. Попытайтесь скомпилировать проект и компилятор, вероятно, должен показать ошибку, что не может найти нужный "хидер" и покажет, в какой строке идет ссылка на него.
Аватара пользователя
eess9
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Re: C atmega128 на atmega1281

Сообщение eess9 »

А зачем такие сложности с переименованием? Поиск строки "mega128.h" по проекту. Ctrl+F вам в помощь.
IOZ
Родился
Сообщения: 12
Зарегистрирован: Пн апр 07, 2014 19:46:10

Re: C atmega128 на atmega1281

Сообщение IOZ »

Разобрался, дело в том, что в этот раз в Project->Configure->C Compiler не поменял Chip на atmega1281. Всем спасибо в участие, особенно Jonson1974 :)
Barisych
Открыл глаза
Сообщения: 46
Зарегистрирован: Сб дек 17, 2011 11:02:00

Re: C atmega128 на atmega1281

Сообщение Barisych »

Здавствуйте! сталкнулся с такой проблемой!
при переходе с меги 8 на 1281 (надо несколько PWM)
вылетает ошибка Operand 1 out of range: 0x6f

ссылаясь на
ldi Temp,0
>>>>>out TIMSK1,Temp

в I/O View у TIMSK1 адреса прописаны так - na(0x6F)

во все регистры адреса которых начинаются на na ничего не грузится! :(
в файле m1281def.inc
написано так...
.equ TCCR1A = 0x80 ; MEMORY MAPPED

тоесть я так понимаю что нет прямой адресации регистров!?

как загрузить данные.
пишу на асм
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: C atmega128 на atmega1281

Сообщение YS »

С memory mapped регистрами OUT не работает. Используйте STS.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: C atmega128 на atmega1281

Сообщение Gudd-Head »

через LD/ST, очевидно.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Barisych
Открыл глаза
Сообщения: 46
Зарегистрирован: Сб дек 17, 2011 11:02:00

Re: C atmega128 на atmega1281

Сообщение Barisych »

YS писал(а):С memory mapped регистрами OUT не работает. Используйте STS.

СПАСИБО! ТАК И ЕСТЬ! :) нашол это в русском описании на 128й
всё заработало!
Ответить

Вернуться в «AVR»