C atmega128 на atmega1281
C atmega128 на atmega1281
Перевожу исходник на 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
Лол. Посмотреть как эти регистры обзываются в 1281.IOZ писал(а):Подскажите пожалуйста, что можно сделать?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: C atmega128 на atmega1281
Дело в том, что эти регистры в заголовочном файле mega1281.h отсутствуют, может я что-то не понимаю 

Re: C atmega128 на atmega1281
IOZ, тебе же ответили, посмотрите, как эти регистры (аналогичные по функциональности) называются у 1281.
Спецификация на оба МК в помощь.
atmega128, atmega1281
Спецификация на оба МК в помощь.
atmega128, atmega1281
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: C atmega128 на atmega1281
В atmega128 ETIMSK и TIMSK используются, для работы с таймером. В atmega1281 есть TIMSK0, TIMSK1 TIMSK2. Мне не понятна аналогия.
-
Jonson1974
- Открыл глаза
- Сообщения: 55
- Зарегистрирован: Сб мар 30, 2013 19:59:37
Re: C atmega128 на atmega1281
IOZ писал(а):В atmega128 ETIMSK и TIMSK используются, для работы с таймером.
Не с таймером, а с таймерАМИ. В документации, ссылку на которую Вам дали ранее, есть подробное побитовое описание обоих регистров. Оба эти регистра управляют прерываниями сразу от нескольких таймеров.
IOZ писал(а):В atmega1281 есть TIMSK0, TIMSK1 TIMSK2
А в 1281-ой для каждого таймера ввели свой регистр управления прерываниями. Кстати, у нее есть и TIMSK3 и TIMSK4 и TIMSK5.
Кстати, у 1281 - 6 таймеров (два 8-ми битных и четыре 16-ти битных), а у 128-ой - всего 4.
Re: C atmega128 на atmega1281
Спасибо, с этим разобрался. Пробую переделывать c atmega128 на 1281 другую программку, теперь всплывает другая ошибка(прикрепил во вложении). Что это может быть?
- Вложения
-
- 67.png
- (7.31 КБ) 571 скачивание
-
Jonson1974
- Открыл глаза
- Сообщения: 55
- Зарегистрирован: Сб мар 30, 2013 19:59:37
Re: C atmega128 на atmega1281
IOZ писал(а):Спасибо, с этим разобрался. Пробую переделывать c atmega128 на 1281 другую программку, теперь всплывает другая ошибка(прикрепил во вложении). Что это может быть?
Двойное определение идентификатора PINF. Где-то ранее по тексту (в файле mega128.h или в каком-нить другом) уже встречается определение #define PINF
Re: C atmega128 на atmega1281
Jonson1974 писал(а):Двойное определение идентификатора PINF. Где-то ранее по тексту (в файле mega128.h или в каком-нить другом) уже встречается определение #define PINF
Двойное определение с файлом mega128.h. Я с #include везде убрал(во всех файлах проекта) mega128.h, вместо прописал mega1281.h. Но почему на него идёт ссылка?
-
Jonson1974
- Открыл глаза
- Сообщения: 55
- Зарегистрирован: Сб мар 30, 2013 19:59:37
Re: C atmega128 на atmega1281
Я не силен в среде CodeVision, по этому подсказать ничего не смогу.
Разве что совет (как сделал бы я) - найдите сам файл mega128.h и временно переименуйте его в _mega128.h. Попытайтесь скомпилировать проект и компилятор, вероятно, должен показать ошибку, что не может найти нужный "хидер" и покажет, в какой строке идет ссылка на него.
Разве что совет (как сделал бы я) - найдите сам файл mega128.h и временно переименуйте его в _mega128.h. Попытайтесь скомпилировать проект и компилятор, вероятно, должен показать ошибку, что не может найти нужный "хидер" и покажет, в какой строке идет ссылка на него.
- eess9
- Вымогатель припоя
- Сообщения: 672
- Зарегистрирован: Ср фев 29, 2012 01:58:32
- Откуда: Харьков, Украина
Re: C atmega128 на atmega1281
А зачем такие сложности с переименованием? Поиск строки "mega128.h" по проекту. Ctrl+F вам в помощь.
Re: C atmega128 на atmega1281
Разобрался, дело в том, что в этот раз в Project->Configure->C Compiler не поменял Chip на atmega1281. Всем спасибо в участие, особенно Jonson1974 
Re: C atmega128 на atmega1281
Здавствуйте! сталкнулся с такой проблемой!
при переходе с меги 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
тоесть я так понимаю что нет прямой адресации регистров!?
как загрузить данные.
пишу на асм
при переходе с меги 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
С memory mapped регистрами OUT не работает. Используйте STS.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: C atmega128 на atmega1281
через LD/ST, очевидно.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: C atmega128 на atmega1281
YS писал(а):С memory mapped регистрами OUT не работает. Используйте STS.
СПАСИБО! ТАК И ЕСТЬ!
всё заработало!