AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
02.09.2012, 18:58
|
#1
|
Частый гость
Регистрация: 02.09.2012
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Помогите с АЦП на меге16
Имею управление DC двигателем спомощью ШИМ на меге 16, нужно сделать контроль по току двигателей для остановки по перегрузке, решил сделать на АЦП той же меги, пишу код на асемблере и смотрю результат в протэусе, проблема следующая, запускаю АЦП в режиме непрерывного преобразования, но в протэусе преоброзавание происходит один раз и все, напряжения к выходу от 0 до 2.5В эфекта ноль, в регистрах данных АЦП лежит число того напряжения которое было приложенно на момент включения, дальше крутишь крутишь переменный резистор число неменяеться. Подскажите как включить непрерывное преоброзование правильно, может я что то ни так делаю.
|
|
|
|
02.09.2012, 19:12
|
#2
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Помогите с АЦП на меге16
Free Running Mode
|
|
|
Сказали "Спасибо" omercury
|
|
|
02.09.2012, 20:08
|
#3
|
Частый гость
Регистрация: 02.09.2012
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Помогите с АЦП на меге16
И что это значит? Free Running Mode
|
|
|
|
02.09.2012, 20:27
|
#4
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Помогите с АЦП на меге16
Что бы ни гадать на кофейной гуще, выложите свой проект протеуса сюда.
|
|
|
Сказали "Спасибо" alvadep
|
|
|
02.09.2012, 20:29
|
#5
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Помогите с АЦП на меге16
Сообщение от Znamen
|
И что это значит? Free Running Mode
|
А то и значит, что установите этот бит (бит 5 регистра ADCSRA) в единицу. Тогда будет запущено непрерывное преобразование. Только недавно здесь втолковывали... Правда там был СИ а не Asm, но сути это не меняет.
И проверьте в регистре SFIOR три старших бита должны быть в нулях.
ЗЫ, блин, не заметил, что 16-я мега добавил.
__________________
Halex
Последний раз редактировалось Halex07; 02.09.2012 в 20:49.
|
|
|
Сказали "Спасибо" Halex07
|
|
|
02.09.2012, 20:47
|
#6
|
Частый гость
Регистрация: 02.09.2012
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Помогите с АЦП на меге16
Так я так и делаю, он установлен в 1, после преобразования бит ADSC сбрасываеться в ноль, т.е. преобразование вобще останавливаеться, если делаю цикл, включил - подождал конца преобразование - опять включил, то так работает.
вобщем в этом виде программы в регистрах данных АЦП появляется значения напряжения каторое находиться на вводе АЦП в момент включения, дальнейшее его изменение ничего не дает.
ldi temp,0b11000000
out ADMUX,temp
loop:
ldi temp,0b11100110
out ADCSRA,temp
loop1:
in temp, ADCSRA
cpi temp, 0b11110110
brne loop1
loop2:
jmp loop2
а вот так если сделать то в регистрах данных АЦП число меняеться соответственно напряжению на входе.
ldi temp,0b11000000
out ADMUX,temp
loop:
ldi temp,0b11100110
out ADCSRA,temp
loop1:
in temp, ADCSRA
cpi temp, 0b11110110
brne loop1
jmp loop
В регистре SFIOR все по нулям!!!!
Последний раз редактировалось Znamen; 02.09.2012 в 21:08.
|
|
|
|
02.09.2012, 21:09
|
#7
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Помогите с АЦП на меге16
Дальше остается действительно только "кофейная гуща"... Прерывания от АЦП разрешены? Обработка ведется в прерывании?
__________________
Halex
|
|
|
Сказали "Спасибо" Halex07
|
|
|
02.09.2012, 21:09
|
#8
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,984
Сказал спасибо: 0
Сказали Спасибо 4,943 раз(а) в 2,371 сообщении(ях)
|
Re: Помогите с АЦП на меге16
а в железе работает?
|
|
|
|
02.09.2012, 21:16
|
#9
|
Частый гость
Регистрация: 02.09.2012
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Помогите с АЦП на меге16
В железе не пробывал, т.к. по моему не большому опыту когда у меня не работало в протэусе (хотя все вроде правельно было написано) не работало и на железе, было только наоборот(((((
Прерывания не задействываю.
|
|
|
|
02.09.2012, 21:22
|
#10
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Помогите с АЦП на меге16
Сообщение от Znamen
|
Прерывания не задействываю.
|
Ну и как же вы "ловите блох"? Тогда уж действительно "проект в студию...". "Это жжж неспроста" , как сказал Винни-Пух.
|
|
|
Сказали "Спасибо" Halex07
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:51.
|
|