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

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

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

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

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

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

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

 
Опции темы
Непрочитано 20.03.2005, 09:40  
Слава
Гость
 
Сообщений: n/a
По умолчанию об АЦП на mega8

Здравствуйте.
Ищу помощи по следующему вопросу
Я использую внутренний АЦП на mega8. Большая точность не требуется, идет просто оцифровка сигнала от некоторого источника, а потом подсчет числа импульсов. Такой подсчет в мк реализовать не удалось. Пришлось отсылать оцифровку на комп. Но вот здесь проблема. Иногда выборка приходит нормальной, те. без значительных выбросов, а чаще всего это это вообще загзагообразная выборка с прыжками где-то в 0.1 от напр ИОНа! АЦП работает нормально, я проверял до этого, когда были одиночные преобразования, отсылал их на комп, все приходило без проблем.
А сейчас, такое впечатление, что буфер UART на компе засирается чем-то. Хотя я его очищаю перед каждым запуском программы. Еще странно, что порой проскакивают одни и те же оцифровки.
Может было что-то похожее?
Спасибо.
Реклама:
 
Непрочитано 21.03.2005, 10:18  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: об АЦП на mega8

Сообщение от Слава
Здравствуйте.
А сейчас, такое впечатление, что буфер UART на компе засирается чем-то. Хотя я его очищаю перед каждым запуском программы. Еще странно, что порой проскакивают одни и те же оцифровки.
Может было что-то похожее?
Спасибо.
Думаю, что вам бы следовало привести код программы. 99.9% глюков появляются вовсе не по причине железа...

Ну а помочь вам вслепую вряд ли кто сможет.
nml вне форума  
Непрочитано 21.03.2005, 13:50  
Слава
Гость
 
Сообщений: n/a
По умолчанию

спасибо за готовность помочь!
вот часть кода
----------------------------------------------------
...
ldi tmp,0b10000101
out ADCSR,tmp
ldi tmp,0b11000010
out ADMUX,tmp

;-----------------
ADC_conv_st:
ldi r16, 0 ;обнуляем для уверенности
out ADCL, r16
sbi ADCSR, ADSC ;старт преобразования

ADC_conv_complete:
sbis ADCSR, ADIF
rjmp ADC_conv_complete
in r16, ADCL
in r15, ADCH
cbi ADCSR, ADIF

trans: sbis UCSRA, UDRE ;Если бит UDRE в USR установлен, то
;пропустить cледующую команду
rjmp trans ;Вернуться на метку trans
out UDR, r16 ;в регистр данных UART
rjmp ADC_conv_st
----------------------------------------------------------
nml, вы код программы мк имели ввиду, или программы приема на ком-ре? Если комп. программу, то она довольно большая. Если думаете ошибки могут быть там, приведу и ее код.
 
Непрочитано 21.03.2005, 14:57  
Гость
Гость
 
Сообщений: n/a
По умолчанию

Вообще то по даташиту сброс флага конца преобразования производится записью логической 1, а не 0 (как у Вас).
 
Непрочитано 23.03.2005, 10:25  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от Слава
ldi tmp,0b10000101
out ADCSR,tmp
ldi tmp,0b11000010
out ADMUX,tmp
тут, как я понял, 2 канал, вн. 2.5в опорное, с предделителем тактовой надеюсь правильно посчитали... Все Ок...
Цитата:
ADC_conv_st:
ldi r16, 0 ;обнуляем для уверенности
out ADCL, r16
вот это совершенно ни к чему... хотя писать туда действительно можно. Если не исп. АЦП - типа хранилища использовать
Цитата:
sbi ADCSR, ADSC ;старт преобразования

ADC_conv_complete:
sbis ADCSR, ADIF
rjmp ADC_conv_complete
in r16, ADCL
in r15, ADCH
cbi ADCSR, ADIF
вот тут (как уже правильно подметили) - надо SBI! Так уж АВР устроен, что всякие биты готовностей у него сбрасываются записью туда единицы, что, ессно, криво и нелогично... Но так уже есть.
Иначе флаг готовности останется в "1" и следующее преобразование вы реального завернения не дождетесь - то есть АЦП работает, а флаг (старый!) стоит.

Ну а в остальном криминала не вижу, если правильно подобраны скорости, режим USART - все должно работать...
nml вне форума  
Непрочитано 23.03.2005, 18:56  
Слава
Гость
 
Сообщений: n/a
По умолчанию

Действительно, дело было в этом бите.
И я сам читал до этого доку на мк, видел, что сбрасывать бит надо командой установки бита. Но тогда не обратил на это внимания.
Спасибо вам всем!
 
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
i2c_tiny_usb + Mega8 (slave) atsys AVR 3 06.11.2013 19:01
Mega8 USART - TXCIE nerozero Микроконтроллеры, АЦП, память и т.д 0 29.05.2008 10:21
ЖК 16x2 & Mega8 bat406 Микроконтроллеры, АЦП, память и т.д 2 06.05.2008 16:39
Mega8 тактирование day177 Микроконтроллеры, АЦП, память и т.д 0 25.01.2008 18:29
tiny2313&mega8 Terapefft Микроконтроллеры, АЦП, память и т.д 2 14.11.2006 12:44


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


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