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

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

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

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

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

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

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

 
Опции темы
Непрочитано 28.08.2011, 13:44  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Не работает АЦП mega8

Здравствуйте, по прерыванию о завершении преобразования я последовательно опрашиваю АЦП каналы 0,1 и 7.
Если опрашивать 2 любых канала то всё работает, но как только в самом первом цикле начинаю заходить на опрос третьего канала то там и в двух до этого нормально работающих каналах мусор.
Подскажите, что у меня не так ?

Цитата:
;******** Обработка прер.по АЦП *************************************


ADC_CC :


cpi selacp, 1 ;если селектор АЦП =1 то идём на контроль АКБ
breq akb

cpi selacp, 2 ;если селектор АЦП =2 то идём на контроль тока
breq tok

cpi selacp, 3 ;если селектор АЦП =3 то идём на опрос кнопок
breq key

sacp: inc selacp ;селектор + 1


cpi selacp, 3 ;если завершили все опросы то
breq vozv ;идём на vozv


reti ;иначе выходим из прерывания

vozv: ldi selacp, 1 ;тут обнуляем селектор (=1)

reti ;и выходим из прерывания


akb:
ldi temp, 0b11100000 ;непрерывное чтение, АЦП-0
out ADMUX, temp

in temp, ADCL ; просто формальность (первым всегда читается ADCL)

in tacp, ADCH ; wreg contains result
mov t, tacp

rjmp sacp

key:
ldi temp, 0b11100111 ;непрерывное чтение, АЦП-7
out ADMUX, temp

in temp, ADCL ; просто формальность (первым всегда читается ADCL)

in tacp, ADCH ; wreg contains result
mov t, tacp
lsr t
lsr t
lsr t

rjmp sacp



tok:
ldi temp, 0b11100001 ;;непрерывное чтение, АЦП-1
out ADMUX, temp

in temp, ADCL ; просто формальность (первым всегда читается ADCL)

in acp, ADCH ; wreg contains result

rcall ktok



rjmp sacp
Реклама:
putmannn вне форума  
Непрочитано 28.08.2011, 14:00  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Не работает АЦП mega8.

Что пишете в ADCSRA ?
omercury вне форума  
Непрочитано 28.08.2011, 14:09  
woroba
Гражданин KAZUS.RU
 
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
woroba на пути к лучшему
По умолчанию Re: Не работает АЦП mega8.

После смены канала нужна пауза перед опросом АЦП.
__________________
Не ошибается лишь тот, кто ни чего не делает!
woroba вне форума  
Непрочитано 28.08.2011, 14:11  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Не работает АЦП mega8.

Сообщение от omercury Посмотреть сообщение
Что пишете в ADCSRA ?
ldi temp, 0b11101111
out ADCSR, temp
putmannn вне форума  
Непрочитано 28.08.2011, 14:19  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Не работает АЦП mega8.

мне вообще не понятно как у меня корректно работает с 2-мя каналами.
Допустим происходит прерывание АЦП, селектор =1, значит идём на метку tok, по идее в ADCL, ADCН должно находиться значение от предыдущего преобразования, а значит не из 1-го канала, а из 7-го.
Перед чтением этих переменных у меня стоит
ldi temp, 0b11100001
out ADMUX, temp
и каким то образом из них читается то что в первом канале, как это, ведь прерывание пришло когда завершилось предыдущее преобразование 7-го канала..
бред какой то

Преобразование у меня непрерывное, прочитал что с одиночным проще, меняешь канал и запускаешь преобразование и так же в прерывании снимаешь значение.
Но одиночные в 2 раза медленнее выборка, нужно сделать с непрерывным преобразованием.
Помогите =((((

Последний раз редактировалось putmannn; 28.08.2011 в 14:21.
putmannn вне форума  
Непрочитано 28.08.2011, 14:25  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Не работает АЦП mega8.

Сообщение от putmannn Посмотреть сообщение
ldi temp, 0b11101111
out ADCSR, temp
Просто пытаюсь понять, зачем нужен Free Running Mode, если после каждого измерения меняется канал.
Нажмите на изображение для увеличения
Название: ADC.jpg
Просмотров: 59
Размер:	17.6 Кб
ID:	25524
Если по-простому, то смена номера канала не произойдёт, пока флаг прерывания не сброшен (надо либо сбрасывать вручную, либо менять после выхода из прерывания). А ещё может случиться, что программа слишком долго находится в прерывании...
Попробуйте перезапуск АЦП. Тогда и ADFR устанавливать смысла нет.
omercury вне форума  
Непрочитано 28.08.2011, 14:36  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Не работает АЦП mega8.

Сбрасываю флаг ADIF в прерывании, не работает. Попробую переключать канал вне прерывания.

Вне прерывания меняю канал, то же самое, если по очереди читаю 2 канала всё работает, как только начинаю читать 3 то не работает.

Последний раз редактировалось putmannn; 28.08.2011 в 14:46.
putmannn вне форума  
Непрочитано 28.08.2011, 14:59  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Не работает АЦП mega8.

Флаг сбрасывается записью "1" в регистр.
omercury вне форума  
Непрочитано 28.08.2011, 15:15  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Не работает АЦП mega8.

И 0 и 1 туда пишу, без изменений.
putmannn вне форума  
Непрочитано 28.08.2011, 15:26  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Не работает АЦП mega8.

Сделал не непрерывное, а одиночное преобразование, так работает, но мне надо шустрее опрашивать ..... может кто научит как корректно менять канал АЦП при непрерывном преобразовании на атмеге8 ?????
putmannn вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает АЦП mega8 putmannn Микроконтроллеры, АЦП, память и т.д 10 11.07.2011 12:40
АЦП mega8 Proteus не работает AGAT0365 Proteus 16 27.04.2010 19:53
АЦП в mega8 FlashAck Микроконтроллеры, АЦП, память и т.д 29 29.01.2010 17:50
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03
об АЦП на mega8 Слава Микроконтроллеры, АЦП, память и т.д 5 23.03.2005 18:56


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


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