Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Inline функции в CodeVision AVR

Непрочитано 23.08.2011, 00:11  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Inline функции в CodeVision AVR

Не выкинет.
Можно отдать на усмотрение компилятора, какой регистр выбрать. Без явного указания на номер регистра.
Реклама:
omercury вне форума  
Непрочитано 23.08.2011, 00:42  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Inline функции в CodeVision AVR

http://www.nongnu.org/avr-libc/user-...#faq_reg_usage
st_1 вне форума  
Непрочитано 23.08.2011, 14:10  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Inline функции в CodeVision AVR

Вот так будет 4000 кГц. Выход фазы А подключаете ко входу счётчик1, настраиваете его на требуемое количество импульсов и вызываете подпрограмму из си
Код:
loop:	ld	r16,z+
	out	portd,r16
	and	zl,0xFC
	nop
	ld	r16,z+
	out	portd,r16
	rjmp	loop
Для смены направления заносите в zh,zl адрес другого массива. Ну или вызываете другую п/п

Последний раз редактировалось =GM=; 23.08.2011 в 14:13.
=GM= вне форума  
Сказали "Спасибо" =GM=
Godzilla82 (23.08.2011)
Непрочитано 23.08.2011, 14:49  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Inline функции в CodeVision AVR

Настроил на сравнение, допустим. Возникло прерывание. И всё. Я сижу в этом прерывании, пока не надоест? А когда вернусь из него - ипульсы продолжатся.

В прерывании можно будет менять z и, таким образом, замораживать счёт... А вот менять длительность импульса?

1 Гц, 1000 Гц, 10000... и т.д.?

Реакцию на кнопки - тоже через прерывания?

Последний раз редактировалось Godzilla82; 23.08.2011 в 14:58.
Godzilla82 вне форума  
Непрочитано 23.08.2011, 14:57  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Inline функции в CodeVision AVR

А подправить стек и прыгнуть, куда надо из прерывания, религия не позволяет?

Я вам дал пример построения максимально быстрой программы (кстати, можно и до 3 тактов довести, будет уже 6700 кГц). Чтобы менять длительность импульса надо вставить задержку. Это уж сами сделайте, там ничего сложного.
=GM= вне форума  
Непрочитано 23.08.2011, 15:22  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Inline функции в CodeVision AVR

Сообщение от =GM= Посмотреть сообщение
А подправить стек и прыгнуть, куда надо из прерывания, религия не позволяет?
Ну да... точно... Всё упирается в ассемблер. Разбираться с ним щас пока не готов... Хотя всё чаще появляется желание

Вот ещё вопросик. ISR_NAKED. Сохранять SREG в стеке надо же? Из СИ (WinAVR) - как?

Последний раз редактировалось Godzilla82; 23.08.2011 в 15:26.
Godzilla82 вне форума  
Непрочитано 23.08.2011, 15:36  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Inline функции в CodeVision AVR

Ну так
Код:
	in	r0,SREG
	push	r0
Сообщение от Godzilla82 Посмотреть сообщение
Всё упирается в ассемблер
Почему всё? 7 строк кода можно заинлайнить, остальное на си.
=GM= вне форума  
Непрочитано 23.08.2011, 15:46  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Inline функции в CodeVision AVR

Сообщение от =GM= Посмотреть сообщение
Ну так
Код:
	in	r0,SREG
	push	r0
Почему всё? 7 строк кода можно заинлайнить, остальное на си.
То есть, явно push SREG нельзя писать...

Менять адрес возврата в стеке на нужный... На СИ, не зная асма?... Спасибо, мне трудноуловимых глюков в программе не надо...
Godzilla82 вне форума  
Непрочитано 23.08.2011, 16:27  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Inline функции в CodeVision AVR

Сообщение от Godzilla82 Посмотреть сообщение
Менять адрес возврата в стеке на нужный...
Что-то я не въехал - зачем?
omercury вне форума  
Непрочитано 23.08.2011, 16:32  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Inline функции в CodeVision AVR

Для эквилибристики...
st_1 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература по микроконтроллерам (AVR, PIC, ПЛИС и т.д.). Сборка книг - (256 книг+ 27 CD c примерами из книг) [обновление 2011, PDF, DJVU] yurinform Микроконтроллеры, АЦП, память и т.д 5 05.07.2011 19:00
Codevision AVR + AVR Studio помогите разобраться с отладкой Daget Микроконтроллеры, АЦП, память и т.д 24 07.03.2011 14:41
CodeVision AVR 2.05.0 работа с битами портов ajsn Микроконтроллеры, АЦП, память и т.д 4 06.03.2011 23:15
mRTOS - кооперативная ОС для AVR. Порт CodeVision. LVII Микроконтроллеры, АЦП, память и т.д 5 29.11.2008 14:44
Как работать с AT89C5131 в CodeVision AVR? lom771 Микроконтроллеры, АЦП, память и т.д 2 29.08.2006 16:51


Часовой пояс GMT +4, время: 22:54.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.