роботы робототехника микроконтроллеры


 Страниц (2): « 1 [2]   

> Без описания
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



applecutter, называется AVRdelayloop генератор

 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



nest спасибо, пригодится.
 
 Top
applecutter Post Id


Рядовой


Сообщений всего: 12
Дата рег-ции: Март 2011  



mihail пишет:
Коротко врядли получится.
http://easyelectronics.ru/catego...vr-uchebnyj-kurs
Тут много ассемблера для AVR.

Спасибо, море полезнейшей инфы.
(Добавление)
nest пишет:
applecutter, называется AVRdelayloop генератор

Спасибо, крутецкая прога. Правда, мне по ходу все равно придется использовать встроенные регистры для отсчета времени, потому что в проге использованы все базовые для вывода сигнала, и при их использовании даже при небольшой задержке в десяток тактов начинаются глюки, а при большой вообще пишет что нет сигнала. Естественно, что перед их использованием я ложил их текущее состояние на стек, а после снимал.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



applecutter пишет:
мне по ходу все равно придется использовать встроенные регистры для отсчета времени, потому что в проге использованы все базовые для вывода сигнала
там выбрать можно любые три в выпадающем меню.
а что такое "встроенные регистры" ?
Если вы сохраняли их ДО и ПОП-али после и при этом что то не работало - виновата ваша программа. Проверяйте, не используются ли применённые регистры в прерываниях и SREG-регистр тоже обходить нужно.
 
 Top
petr Post Id


Рядовой


Сообщений всего: 1
Дата рег-ции: Март 2011  



CODE:

Delay:
subi Razr0, 1
suci Razr1, 0
suci Razr2, 0
brcc Delay

При f = 4 MHz возможно создание задержки до 4,19 с.
Подробнее: Ю. Ревич "Практическое программрование МК АВР" стр. 102, использование таймера для формирования задержки, там же стр. 108
 
 Top
applecutter Post Id


Рядовой


Сообщений всего: 12
Дата рег-ции: Март 2011  



nest пишет:
applecutter пишет:
мне по ходу все равно придется использовать встроенные регистры для отсчета времени, потому что в проге использованы все базовые для вывода сигнала
там выбрать можно любые три в выпадающем меню.

Любые три из базовых. А они как раз все и заняты. В принципе, чтобы не быть голословным, вот исходник - http://paste.org.ru/?9hfncd , о занятости регистров можно судить уже в дефайнах, и никакие махинации с пушами и попами не помогают - при небольшой задержке в десяток тактов заливка монитора сбивается, покрывает не весь экран, дергается, глючит и не работает.

Цитата:
а что такое "встроенные регистры" ?

Имеется в виду полностью словосочетание "встроенные регистры для отсчета времени", то есть те регистры, которые не общего назначения, но являющиеся специальным механизмом для отсчета времени. Хотя, в принципе, можно попытаться заюзать их как регистры общего назначения, но я пока курю мануал и втыкаю как их вообще можно использовать. Мне бы рабочий пример как используются эти тайминговые регистры..

Цитата:
Если вы сохраняли их ДО и ПОП-али после и при этом что то не работало - виновата ваша программа.

Совершенно верно, программа виновата что сожрала все доступные ресурсы. Но видимо это было необходимо, потому что некоторые даже сомневались что такая микросхема может давать выход на D-Sub.
(Добавление)
petr пишет:
CODE:

Delay:
subi Razr0, 1
suci Razr1, 0
suci Razr2, 0
brcc Delay

При f = 4 MHz возможно создание задержки до 4,19 с.
Подробнее: Ю. Ревич "Практическое программрование МК АВР" стр. 102, использование таймера для формирования задержки, там же стр. 108

Спасибо, обстоятельно раскурю.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



applecutter пишет:
Любые три из базовых. А они как раз все и заняты. В принципе, чтобы не быть голословным, вот исходник - http://paste.org.ru/?9hfncd
вы SREG то сохраняйте при входе в прерывания! Естественно у вас всё по кочкам летит.
CODE:
ПРЕРЫВАНИЕ:
in temp_a,SREG
............ код .............
............ в коде нельзя "ломать" temp_a ! либо его тоже нужно push/pop .............
............ код .............
out SREG,temp_a
reti


В прерывании не надо делать СLI , это безсмысленно.
В прерывании обычно задержки не делают. Не знаю, может у вас тут оссобенный случай, другого пути точно нет?

applecutter пишет:
программа виновата что сожрала все доступные ресурсы.
Не программа виновата, а вы Улыбка Это ведь не СИ какой Улыбка Если вы взялись за асм, то нужны навыки и опыт.
Регистров в AVR хватит всем (Улыбка) просто применяйте их с умом.
 
 Top
applecutter Post Id


Рядовой


Сообщений всего: 12
Дата рег-ции: Март 2011  



nest пишет:
applecutter пишет:
Любые три из базовых. А они как раз все и заняты. В принципе, чтобы не быть голословным, вот исходник - http://paste.org.ru/?9hfncd
вы SREG то сохраняйте при входе в прерывания! Естественно у вас всё по кочкам летит.

Ок, попробую, щас просто прошивателя нет под рукой. Как сделаю - доложу о результатах.

Цитата:
В прерывании не надо делать СLI , это безсмысленно.
В прерывании обычно задержки не делают. Не знаю, может у вас тут оссобенный случай, другого пути точно нет?

Сам не знаю, пока что копаю)

Цитата:
applecutter пишет:
программа виновата что сожрала все доступные ресурсы.
Не программа виновата, а вы Улыбка Это ведь не СИ какой Улыбка Если вы взялись за асм, то нужны навыки и опыт.
Регистров в AVR хватит всем (Улыбка) просто применяйте их с умом.

Дык у меня пока что нету достаточно ума даже для того чтобы с нуля написать прогу - правлю чужой исходник) Ну, какбэ, разбираюсь в процессе.
 
 Top
applecutter Post Id


Рядовой


Сообщений всего: 12
Дата рег-ции: Март 2011  



nest пишет:
applecutter пишет:
Любые три из базовых. А они как раз все и заняты. В принципе, чтобы не быть голословным, вот исходник - http://paste.org.ru/?9hfncd
вы SREG то сохраняйте при входе в прерывания! Естественно у вас всё по кочкам летит

Сохранение SREG не помогло. Щас курю книжку Ревича - попробую заюзать какие-нибудь регистры ввода/вывода для хранения числа отсчетов для счетчика.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



applecutter пишет:
попробую заюзать какие-нибудь регистры ввода/вывода для хранения числа отсчетов для счетчика.
Это то зачем ?!?!?
Если вам не хватает регистров - то у вас в корне неверный подход к асму.

Представте, что у вас 16 однолитровых баночек (и ещё 16 - прикрученых к столу).
И вам поставлены разные задачи: наполнить 20 литров, наполнить 3 литра, наполнить 45 литров, и т.д.
Как вы будете наполнять, к примеру, 20 литров?
Вы их наберёте и выливаете. И к следующей задачи опять приходите с пустыми баночками.

Вот и с регистрами так же. Сделали парой регистров что нужно и потом с этими же регистрами можно в другом месте делать опять что то другое.
Если нужно что то сохранить - можно записать в SRAM. Но это занимает чуточку времени, поэтому в быстрых алгоритмах осторожнее.
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



возможно не в тему но если речь об 2313 то у вас три дженерал пурпоз регистер свободные сидят
Даже и оперативка не нужна и иипром тоже
(даташит по 2313- настольная книга Улыбка )
(повторюсь, всю ветку- нечитал, может и не в теме)
 
 Top
applecutter Post Id


Рядовой


Сообщений всего: 12
Дата рег-ции: Март 2011  



cjA пишет:
возможно не в тему но если речь об 2313 то у вас три дженерал пурпоз регистер свободные сидят
Даже и оперативка не нужна и иипром тоже
(даташит по 2313- настольная книга Улыбка )
(повторюсь, всю ветку- нечитал, может и не в теме)

Да нет, использованы, к сожалению все, - смотри секцию дефайнов - http://paste.org.ru/?9hfncd
(Добавление)
nest пишет:
applecutter пишет:
попробую заюзать какие-нибудь регистры ввода/вывода для хранения числа отсчетов для счетчика.
Это то зачем ?!?!?
Если вам не хватает регистров - то у вас в корне неверный подход к асму.

Да не, я-то с вами согласен, просто не я писал эту прогу - я просто немного подгоняю ее под свои нужды, а чтобы ее полностью переписать нужно в ней очень досконально разобраться, а это долго.
 
 Top
Страниц (2): « 1 [2]
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru