Цитата(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