ADC Attiny13 состояние после вкл\вкл

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ADC Attiny13 состояние после вкл\вкл

Сообщение Starichok51 »

dds7sdd, ни хера ты не понял из того что я и другие тебе говорили.
тупи дальше...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Re: ADC Attiny13 состояние после вкл\вкл

Сообщение dds7sdd »

Старичек в своем репертуаре)))
Я то может и не понял, но приведенный вами код не работает, а именно при включении питания светодиод светится.
Это означает, что некоторый промежуток времени после вкл. питания значение регистра ADCH равно максимуму или мусору в нём (не путать с "уважаемым" здесь musor-ом).

Что же касается ждать циклом завершения преобразования в "Singl mode" или в "Free running mode" и читать бит ADIF или ADSC, в контексте моей задачи, не имеет значения, ибо как показали изыскания, первые несколько преобразований АЦП переполняют регистр ADCH. Такая же ситуация и в 10-ти битном режиме (ADCL|8<<ADCH).

Я конечно может где то и не прав, но приведенные здесь советы и код не решили мою задачу, а она проста: при вкл. питания АЦП не должен иметь макс. значения.

Времени разбираться особо нет, посему для себя решил вопрос в лоб: вкл. питания; вкл. АЦП; вкл. преобразования; ждем один раз (после вкл. пит.) и читаем результат. Последующая обработка данных АЦП уже без ожиданий.

Конечный вариант кода:

Код: Выделить всё

volatile unsigned int adc_val;
int power_limit=0, ads=1, ADC_tik;


int main(void){

DDRB=1<<DDB3|0<<DDB2|1<<DDB0;
PORTB=0<<PB3|0<<PB2|0<<PB0;

ADMUX=0<<REFS0|1<<ADLAR|1<<MUX0;
ADCSRA=1<<ADEN|1<<ADSC|1<<ADPS1|1<<ADPS2;

while(1){
ADCSRA|=1<<ADSC;
adc_val = ADCH;
     
if (adc_val>=1&&ads>=1) {ADC_tik++;} else {if (adc_val>=150) {PORTB|=(1<<PB3);power_limit=1;}}
if (ADC_tik>=30000) {ads=0;ADC_tik=0;}

 }
}

Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: ADC Attiny13 состояние после вкл\вкл

Сообщение Starichok51 »

dds7sdd писал(а):приведенный вами код не работает
dds7sdd, я рассказал так, как я это делаю в своих программах.
но у меня АЦП работает прекрасно, а у тебя не работает или работает почему-то не правильно.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
>TEHb<
Друг Кота
Сообщения: 5742
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Откуда: Воронеж
Контактная информация:

Re: ADC Attiny13 состояние после вкл\вкл

Сообщение >TEHb< »

Если пофигу лежит ли в регистрах это или предыдущее преобразование, то может и вовсе спустить АЦП с поводка? Пускай молотит непрерывно, а результат забирать как получится.
"Привет!" - соврал он.
Реклама
Эиком - электронные компоненты и радиодетали
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: ADC Attiny13 состояние после вкл\вкл

Сообщение Martian »

[uquote="dds7sdd",url="/forum/viewtopic.php?p=4614842#p4614842"]при вкл. питания АЦП не должен иметь макс. значения.[/uquote] Регистры АЦП (а не сам АЦП) при включении питания могут иметь какое угодно значение, если оно произошло с некорректным сбросом. При корректном состояние регистров равно указанному в даташите: все биты ADCL и ADCH равны 0. Если не 0, то одно из двух: тот, кто разрабатывал устройство, допустил ошибку, либо это не ATtiny13.
Судя по ТС, ошибку он допустить не мог никак. Значит, это не ATtiny13/
Всё, вопрос решён.

Добавлено after 1 minute 6 seconds:
а, забыл добавить: "тему можно закрывать" :)))

Добавлено after 8 minutes 52 seconds:
dds7sdd писал(а):Это стандарт С
нет (либо уточняете, какой).
dds7sdd писал(а):Разве есть стандарт представления кода схожий с Вашим написанием?
да.
Вам бы книжки по Си почитать.
Реклама
dds7sdd
Прорезались зубы
Сообщения: 207
Зарегистрирован: Чт дек 07, 2017 13:48:44

Re: ADC Attiny13 состояние после вкл\вкл

Сообщение dds7sdd »

))))) Я смотрю олды нынче в ударе! Письками меряютсо :facepalm:

"Вам бы книжки почитать", "судя по ТС", "это не Attiny"... "искромётный" юмор в стиле: я ХЗ почему у тебя, ТС, не работает, но вот выипнутся я за всегда)) Да? Ню-ню :sleep:

Какой нуль в регистрах АЦП в исходном состоянии? Речь шла о результате первых преобразований, а они (в моем случае) всегда максимум.
Но хрен с ним с моими ошибками. В том же даташите написано, что при стабилизации опорного напряжения первые результаты преобразования АЦП могут быть неточными и что от них следует отказаться (п.14.5).

Что же касается темы топика, то ошибка скорее всего моя и заключается в отладочной плате которую я использую. Постоянно подключенный SPI программатор висит контактом синхронизации SCK как раз на входе ADC1 (он же PB2). Полагаю при подаче питания программатор и подавал синхроимпульсы на вход АЦП которые делали мне "погоду".

Но это не значит что вам нужно умничать, а лучше придерживаться простой истины: можешь помочь - помоги, не можешь - промолчи.

Пока вопрос решил задержкой что бы не ковырять отладочную плату и закончить программу.
Будет время - перекину на макетку и проверю.

Всем спасибо за помощь и советы (особенно veso74 который затестил на реальном камне).
Последний раз редактировалось dds7sdd Ср авг 14, 2024 12:01:05, всего редактировалось 1 раз.
Реклама
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: ADC Attiny13 состояние после вкл\вкл

Сообщение Martian »

[uquote="dds7sdd",url="/forum/viewtopic.php?p=4610693#p4610693"]Вопрос: Почему переменная АЦП, до начала преобразования, равна максимуму[/uquote]
dds7sdd писал(а):Речь шла о результате первых преобразований
Я смотрю, янги, как и прежде, тупят, видно, писька не выросла, измерять нечем.
Книжку читай, дитятко.

Добавлено after 1 minute 51 second:
[uquote="dds7sdd",url="/forum/viewtopic.php?p=4615026#p4615026"]то ошибка скорее всего моя[/uquote] да не, не может этого быть! :))) :))) :))) ошибаются только олды
Огонёк
Опытный кот
Сообщения: 777
Зарегистрирован: Вт авг 27, 2024 19:11:47

Re: ADC Attiny13 состояние после вкл\вкл

Сообщение Огонёк »

dds7sdd писал(а):Я смотрю олды нынче в ударе! Письками меряютсо
Олды пытались (зачем, правда, не совсем понятно) донести тебе простейшие азы, но ты стойко держал оборону. Молодец.
Ответить

Вернуться в «AVR»