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

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

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

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

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

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

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

 
Опции темы
Непрочитано 07.03.2010, 14:50  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

С xmega не работал и не планирую пока. Текст с хомутом не приведен - скорее всего просто ошибка в программе. Но могут быть разные фокусы. Приведу пример:
Задача сбросить бит строба, прочитать порт, установить бит строба. Казалось бы решение
cbi
in
sbi
На самом деле, так работать не будет. А вариант
cbi
sbi
in
является правильным.
(mega163 + ftdi245).
такие нюансы могут быть и на xmega.
Реклама:
SasaVitebsk вне форума  
Непрочитано 11.03.2010, 00:39  
svv11
Временная регистрация
 
Регистрация: 20.11.2005
Сообщений: 52
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
svv11 на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от _guardianangel Посмотреть сообщение
Это чтение 2 портов в переменную i и наложение на старший байт маски 0x03.
За пример спасибо ,проблему решил.
svv11 вне форума  
Непрочитано 11.03.2010, 00:42  
svv11
Временная регистрация
 
Регистрация: 20.11.2005
Сообщений: 52
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
svv11 на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от SasaVitebsk Посмотреть сообщение
На самом деле, так работать не будет. А вариант
cbi
sbi
in
является правильным.
Не так пожалуй неправильно: как только снимешь строб - АЦП освободит шину (пины перейдут в третье состояние).
svv11 вне форума  
Непрочитано 11.03.2010, 01:07  
alexgap
Гражданин KAZUS.RU
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
alexgap на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от svv11 Посмотреть сообщение
Код пишется для ATxmega128A1, порты к которым идёт обращения настроенны как виртуальные и обращение к ним идёт как к регистрам с младшими адресами - командами за 1 такт, кампилятор и не знает что это порты. Что меняет местами не сомневайтесь, я внимательно проверял.
svv11, вы так и не показали начальный C код, от которого вы не могли добится правильной работы. Все проблемы с перестановками и "съеденными" обращениями к памяти решаются магическим словом volatile.
alexgap вне форума  
Непрочитано 11.03.2010, 02:40  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от svv11 Посмотреть сообщение
Не так пожалуй неправильно: как только снимешь строб - АЦП освободит шину (пины перейдут в третье состояние).
А фишка в том, что строб снимается физически в конце 2 такта команды sbi, а чтение порта осуществляется в начале команды in. Иными словами при такой последовательности команд это произойдёт одновременно, а ацп задержит. В первом же варианте, надо вставить такт задержки, иначе устр-во не успеет выставить сигнал.
Это всё проверено.
SasaVitebsk вне форума  
Сказали "Спасибо" SasaVitebsk
svv11 (11.03.2010)
Непрочитано 11.03.2010, 03:01  
svv11
Временная регистрация
 
Регистрация: 20.11.2005
Сообщений: 52
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
svv11 на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

SasaVitebsk, полезное замечание, но читать нужно было с двух портов. А выставить успевает, девайс очень резвый, у него преобразование меньше пол-микросекунды, да и торопиться снимать строб нет нужды. А вот один "nop" перед чтением поставлю для профилактики, за замечание спасибо.
svv11 вне форума  
Непрочитано 11.03.2010, 03:46  
svv11
Временная регистрация
 
Регистрация: 20.11.2005
Сообщений: 52
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
svv11 на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Используемый дивайс - AD7470. Насколько я понял из датошита сигналы ~CS и ~RD можно вообще не шевелить, а просто выставить их в постоянно низкое состояние и тогда код будет появляться как только закончится конвертирование, причём выставляться будет даже намного раньше - перед окончанием сигнала BUSY - завтра попробую.
svv11 вне форума  
Непрочитано 11.03.2010, 20:57  
svv11
Временная регистрация
 
Регистрация: 20.11.2005
Сообщений: 52
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
svv11 на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Попробовал если ~CS и ~RD выставить их в постоянно низкое состояние - работает. По изучал Xmega - пришёл к выводу что внутренний АЦП не хуже и умеет понимать напряжение ниже нуля и ещё много всяких полезных прибамбасов позволяющих выкинуть часть обвески (доделываю чужой проект).
svv11 вне форума  
Непрочитано 12.03.2010, 02:35  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Если он сделан аналогично как в megaavr, то там есть один нюанс. Дело в том, что питание (AVCC) используется не только для питания самого ацп, но и порта, на который этот ацп выведен. В результате, при использовании достаточно мощных нагрузок на линиях этого порта, резко ухудшается качество измерения. А если порт оставить чистым, то всё прекрасно работает. На electronix, один парень исследовал характеристики АЦП в xmega в парафазном режиме - и параметры указанные в даташите, вполне подтвердились. Единственное ограничение - с опорником они там хомутнули.
Но если надо измерениями заниматься, то лучше использовать AD.
SasaVitebsk вне форума  
Непрочитано 21.03.2010, 05:47  
svv11
Временная регистрация
 
Регистрация: 20.11.2005
Сообщений: 52
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
svv11 на пути к лучшему
По умолчанию Re: Си-шный компилятор в AVR Studio меняет последовательность команд

Сообщение от SasaVitebsk Посмотреть сообщение
Но если надо измерениями заниматься, то лучше использовать AD.
Точность в этом проекте не главное - 8-битного бы вполне хватило, важна скорость.
svv11 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прерывания usart в avr studio 4.13 zubr_ Микроконтроллеры, АЦП, память и т.д 6 14.10.2009 18:33
AVR studio и GCC Nifelheim Микроконтроллеры, АЦП, память и т.д 12 26.09.2009 23:33


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot