Страница 1 из 1
C atmega128 на atmega1281
Добавлено: Пт фев 06, 2015 14:40:15
IOZ
Перевожу исходник на CodeVision с atmega128 на atmega1281, заменил заголовочные файлы, mega128.h на mega1281.h. Но при компиляции возникают ошибки: 'undefined symdol TIMSK' и 'undefined symdol ETIMSK'. Подскажите пожалуйста, что можно сделать?
Re: C atmega128 на atmega1281
Добавлено: Пт фев 06, 2015 15:52:48
Gudd-Head
IOZ писал(а):Подскажите пожалуйста, что можно сделать?
Лол. Посмотреть как эти регистры обзываются в 1281.
Re: C atmega128 на atmega1281
Добавлено: Пт фев 06, 2015 20:14:25
IOZ
Дело в том, что эти регистры в заголовочном файле mega1281.h отсутствуют, может я что-то не понимаю

Re: C atmega128 на atmega1281
Добавлено: Сб фев 07, 2015 10:43:27
Kavka
IOZ, тебе же ответили, посмотрите, как эти регистры (аналогичные по функциональности) называются у 1281.
Спецификация на оба МК в помощь.
atmega128,
atmega1281
Re: C atmega128 на atmega1281
Добавлено: Сб фев 07, 2015 11:50:28
IOZ
В atmega128 ETIMSK и TIMSK используются, для работы с таймером. В atmega1281 есть TIMSK0, TIMSK1 TIMSK2. Мне не понятна аналогия.
Re: C atmega128 на atmega1281
Добавлено: Сб фев 07, 2015 13:30:45
Jonson1974
IOZ писал(а):В atmega128 ETIMSK и TIMSK используются, для работы с таймером.
Не с таймером, а с таймерАМИ. В документации, ссылку на которую Вам дали ранее, есть подробное побитовое описание обоих регистров. Оба эти регистра управляют прерываниями сразу от нескольких таймеров.
IOZ писал(а):В atmega1281 есть TIMSK0, TIMSK1 TIMSK2
А в 1281-ой для каждого таймера ввели свой регистр управления прерываниями. Кстати, у нее есть и TIMSK3 и TIMSK4 и TIMSK5.
Кстати, у 1281 - 6 таймеров (два 8-ми битных и четыре 16-ти битных), а у 128-ой - всего 4.
Re: C atmega128 на atmega1281
Добавлено: Вс фев 08, 2015 14:13:01
IOZ
Спасибо, с этим разобрался. Пробую переделывать c atmega128 на 1281 другую программку, теперь всплывает другая ошибка(прикрепил во вложении). Что это может быть?
Re: C atmega128 на atmega1281
Добавлено: Вс фев 08, 2015 17:36:33
Jonson1974
IOZ писал(а):Спасибо, с этим разобрался. Пробую переделывать c atmega128 на 1281 другую программку, теперь всплывает другая ошибка(прикрепил во вложении). Что это может быть?
Двойное определение идентификатора PINF. Где-то ранее по тексту (в файле mega128.h или в каком-нить другом) уже встречается определение #define PINF
Re: C atmega128 на atmega1281
Добавлено: Вс фев 08, 2015 20:38:09
IOZ
Jonson1974 писал(а):Двойное определение идентификатора PINF. Где-то ранее по тексту (в файле mega128.h или в каком-нить другом) уже встречается определение #define PINF
Двойное определение с файлом mega128.h. Я с #include везде убрал(во всех файлах проекта) mega128.h, вместо прописал mega1281.h. Но почему на него идёт ссылка?
Re: C atmega128 на atmega1281
Добавлено: Вс фев 08, 2015 21:15:42
Jonson1974
Я не силен в среде CodeVision, по этому подсказать ничего не смогу.
Разве что совет (как сделал бы я) - найдите сам файл mega128.h и временно переименуйте его в _mega128.h. Попытайтесь скомпилировать проект и компилятор, вероятно, должен показать ошибку, что не может найти нужный "хидер" и покажет, в какой строке идет ссылка на него.
Re: C atmega128 на atmega1281
Добавлено: Пн фев 09, 2015 09:19:37
eess9
А зачем такие сложности с переименованием? Поиск строки "mega128.h" по проекту. Ctrl+F вам в помощь.
Re: C atmega128 на atmega1281
Добавлено: Пн фев 09, 2015 18:40:25
IOZ
Разобрался, дело в том, что в этот раз в Project->Configure->C Compiler не поменял Chip на atmega1281. Всем спасибо в участие, особенно Jonson1974

Re: C atmega128 на atmega1281
Добавлено: Ср апр 01, 2015 12:46:02
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
тоесть я так понимаю что нет прямой адресации регистров!?
как загрузить данные.
пишу на асм
Re: C atmega128 на atmega1281
Добавлено: Ср апр 01, 2015 13:49:03
YS
С memory mapped регистрами OUT не работает. Используйте STS.
Re: C atmega128 на atmega1281
Добавлено: Ср апр 01, 2015 13:51:33
Gudd-Head
через LD/ST, очевидно.
Re: C atmega128 на atmega1281
Добавлено: Ср апр 01, 2015 15:34:41
Barisych
YS писал(а):С memory mapped регистрами OUT не работает. Используйте STS.
СПАСИБО! ТАК И ЕСТЬ!

нашол это в русском описании на 128й
всё заработало!