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

 
 
> atmega32 запутался в адресации
bi_max
сообщение May 16 2012, 13:20
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 16-05-12
Из: Якутск
Пользователь №: 71 873



Попробовал сваять прибор для замера параметров Акб
нашел мегу 32 почитал интернет
прилепил с помощью интернета (в основном чужие наработки) дисплей от нокии 3310
писать решил на ассемблере но за неимением опыта наделал кода больше 5к
проект встал не могу понять где то команды icall, ijmp работают где то нет
проект прилагаю
подскажите где я напортачил
меню почти работает скачет по экранчикам начинаешь код дописывать и начинаются проблемы с адресацией
Прикрепленные файлы
Прикрепленный файл  Nokia3310_atmega32.zip ( 575.44 килобайт ) Кол-во скачиваний: 18
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kolobok0
сообщение May 16 2012, 13:58
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(bi_max @ May 16 2012, 17:20) *
...не могу понять где то команды icall, ijmp работают где то нет...


1. не увлекайтесь макросами. их дебажить студия не даёт.
2. локализуйте функционал по файлам. отдельным. относитесь к написанию так, чтоб можно было потом воткнуть этот файл в другой проект, изменить в шапочке дефайны и всё чтоб заработало.
3. в шапочке каждой подпрограммы пишите вход, выход, какие регистры юзаются.
4. в обработчках прерываний вместо пуш-поп можно заюзать movw для регистровых пар. для этого надо выделить из общего массива рон = пары для сохранения регистров. можно даже без пересылки - сразу их юзать. исходя из правила, что в один момент времени может обрабатываться только одно прерывание. И ещё. в обработчиках прерываний необходимо так же сохранять флаги(регистр SREG)

Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 16 2012, 14:09
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(kolobok0 @ May 16 2012, 16:58) *
1. не увлекайтесь макросами. их дебажить студия не даёт.

Ну в Disassemler-е можно отлаживать.

Цитата(kolobok0 @ May 16 2012, 16:58) *
4. в обработчках прерываний вместо пуш-поп можно заюзать movw для регистровых пар.

Как это через movw?
st/ld заменяет push/pop, но выигрыша никакого.


P.S. Главное - бросайте писать на ассемблере без надобности. Переходите на Си.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение May 18 2012, 09:59
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(_Артём_ @ May 16 2012, 18:09) *
Ну в Disassemler-е можно отлаживать.

можно. но речь идёт о дебаженье по исходным текстам, а не по самому коду. сам код (иногда) плохо читаем. посему падает скорость отладки.

Цитата(_Артём_ @ May 16 2012, 18:09) *
Как это через movw?st/ld заменяет push/pop, но выигрыша никакого.

вы только первые предложения читаете? как то поверхностный подход. цитата:

"для этого надо выделить из общего массива рон = пары для сохранения регистров. можно даже без пересылки - сразу их юзать."

надеюсь понятно.
а по скорости - посмотрите указанные команды. выигрыш очевиден.

Цитата(_Артём_ @ May 16 2012, 18:09) *
P.S. Главное - бросайте писать на ассемблере без надобности. Переходите на Си.

на одном плакате написано:
не говорите что мне делать и я не скажу куда вам идти.

предлагаю не разводить халевар. для вас Си - верх совершенства. ради бога. я лично отдыхаю, создавая программы на азме. Если для вас это проблемы - изучайте мат часть.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 12:47
Рейтинг@Mail.ru


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