реклама на сайте
подробности

 
 
> Перенос проекта с atmega8 на atmega168, Некорректная работа устройства
alexxack
сообщение Jun 27 2013, 07:15
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 26-06-13
Пользователь №: 77 280



Уважаемые форумчане помогите с переносом проекта на atmega168. Регистры переназначил Avr Studio 4.19 проект компилирует без ошибок но устройство работает не корректно. Помогите разобраться. Архив с проектом прилагается.
Прикрепленные файлы
Прикрепленный файл  V5.zip ( 49.98 килобайт ) Кол-во скачиваний: 32
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
point5217
сообщение Jun 28 2013, 07:58
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 3-05-09
Из: Бишкек, Кыргызстан
Пользователь №: 48 590



Вектора прерываний перенесли ?
Go to the top of the page
 
+Quote Post
alexxack
сообщение Jul 1 2013, 07:01
Сообщение #3





Группа: Участник
Сообщений: 12
Регистрация: 26-06-13
Пользователь №: 77 280



Цитата(point5217 @ Jun 28 2013, 11:58) *
Вектора прерываний перенесли ?

Честно говоря проект для меня довольно большой в силу того что занимаюсь ассемблером всего месяц и пока что не нашел мест где вектора объявляются.

Цитата(Сергей Борщ @ Jun 28 2013, 12:20) *
Прошу прощения, погорячился. В линуксе принято, что ассемблерные файлы, предназначенные для обработки сишным препроцессором, имеют расширение .S, ваши же имели расширение .s и первым делом я их переименовал. Но не учел, что в Makefile перечислены правила для каждого файла и имена файлов в нем имеют расширение ".s". Что говорит о какчестве генератора этих самых makefiles.

Не, все равно не собирается:
Код
~/projects/test/168/V5/default $ make
avr-gcc  -mmcu=atmega168 -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99             -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT ModBus.o -MF dep/ModBus.o.d  -x assembler-with-cpp -Wa,-gdwarf2 -c  ../ModBus.S
../ModBus.S: Assembler messages:
../ModBus.S:242: Error: number must be positive and less than 64
../ModBus.S:243: Error: number must be positive and less than 64
../ModBus.S:247: Error: number must be positive and less than 64
....


Вы можете выложить файл листинга (.lss)? Переименуйте его в .txt и прицепите к сообщению. Нет желания тратить время на причесывание до компилируемого состояния.

Собственно ругань идет на команды
Код
    out        _SFR_IO_ADDR( UCSR0A ), r22
    out        _SFR_IO_ADDR( UCSR0B ), r22
    out        _SFR_IO_ADDR( UCSR0C ), r23
и подобные
Что неудивительно - в 168 эти регистры переехали в область, недоступную через команду out. Нужно использовать sts. Непонятно, как оно у вас вообще собралось. Таких мест только в этом файле штук 20. Исправляйте, выкладывайте листинг. А может оно и заработает после исправления.

файл листинга прикреплю немного позже пока до проекта руки не дойдут не как работы подкинули
ругань на команды у меня не наблюдаются если заметили данные куски кода закоментены возможно я попутал проект щас выложу исправленный еще раз который у меня компилится без проблем.

Повторно выкладываю проект!!!

Цитата(zhevak @ Jun 28 2013, 08:59) *
Я Ваш код скачал, но еще не смотрел. Элементарно нет времени.

Вот некоторые приёмы, который помогут Вам понять, где и что в программе не работает.

1. Если в изделии есть каике-то светодиоды, которые подключены к ножкам МК, то начало борьбы с снеизвестностью будет вам облегчено. Поробуйте дописать в проект свой код, который бы тупо заставил их моргать при каком-либо наступающем условии или событии. Событие или условие должны наступать однозначно (точно), Вы должны быть в этом уверены. Например -- ежесекундные циклические обращения к какой-нибудь периферии. Сделайте так, что бы светик каждый раз менял свое состояние.

2. У Вас в изделии имеется UART. Подключите его к компу через RS232 или прокиньте его через USB. В консоли тупо задайте команду печати получаемой информации на экран. Это будет Ваш монитор. А в изделии напишите короткий код, который отправлял бы какой-нибудь байт (символ) на комп. Очень важно наладить сам канал передачи информации.

Судя по вашим отзывам, Ваша проблема большая как слон. В подобных случаях я всегда задаю вопрос -- "Как съесть слона?"

Правильный ответ -- "по кусочкам". Вот и Вам нужно делать так же!
Спасибо за подсказку на плате есть реле которыми можно пощелкать

Прикрепленные файлы
Прикрепленный файл  V5_1_.zip ( 137.62 килобайт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 21:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016