dds7sdd, ни хера ты не понял из того что я и другие тебе говорили.
тупи дальше...
ADC Attiny13 состояние после вкл\вкл
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: ADC Attiny13 состояние после вкл\вкл
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Реклама
Re: ADC Attiny13 состояние после вкл\вкл
Старичек в своем репертуаре)))
Я то может и не понял, но приведенный вами код не работает, а именно при включении питания светодиод светится.
Это означает, что некоторый промежуток времени после вкл. питания значение регистра ADCH равно максимуму или мусору в нём (не путать с "уважаемым" здесь musor-ом).
Что же касается ждать циклом завершения преобразования в "Singl mode" или в "Free running mode" и читать бит ADIF или ADSC, в контексте моей задачи, не имеет значения, ибо как показали изыскания, первые несколько преобразований АЦП переполняют регистр ADCH. Такая же ситуация и в 10-ти битном режиме (ADCL|8<<ADCH).
Я конечно может где то и не прав, но приведенные здесь советы и код не решили мою задачу, а она проста: при вкл. питания АЦП не должен иметь макс. значения.
Времени разбираться особо нет, посему для себя решил вопрос в лоб: вкл. питания; вкл. АЦП; вкл. преобразования; ждем один раз (после вкл. пит.) и читаем результат. Последующая обработка данных АЦП уже без ожиданий.
Конечный вариант кода:
Я то может и не понял, но приведенный вами код не работает, а именно при включении питания светодиод светится.
Это означает, что некоторый промежуток времени после вкл. питания значение регистра 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 состояние после вкл\вкл
dds7sdd, я рассказал так, как я это делаю в своих программах.dds7sdd писал(а):приведенный вами код не работает
но у меня АЦП работает прекрасно, а у тебя не работает или работает почему-то не правильно.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- >TEHb<
- Друг Кота
- Сообщения: 5742
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Re: ADC Attiny13 состояние после вкл\вкл
Если пофигу лежит ли в регистрах это или предыдущее преобразование, то может и вовсе спустить АЦП с поводка? Пускай молотит непрерывно, а результат забирать как получится.
"Привет!" - соврал он.
Re: ADC Attiny13 состояние после вкл\вкл
[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:
Вам бы книжки по Си почитать.
Судя по ТС, ошибку он допустить не мог никак. Значит, это не ATtiny13/
Всё, вопрос решён.
Добавлено after 1 minute 6 seconds:
а, забыл добавить: "тему можно закрывать"
Добавлено after 8 minutes 52 seconds:
нет (либо уточняете, какой).dds7sdd писал(а):Это стандарт С
да.dds7sdd писал(а):Разве есть стандарт представления кода схожий с Вашим написанием?
Вам бы книжки по Си почитать.
- Реклама
Re: ADC Attiny13 состояние после вкл\вкл
))))) Я смотрю олды нынче в ударе! Письками меряютсо
"Вам бы книжки почитать", "судя по ТС", "это не Attiny"... "искромётный" юмор в стиле: я ХЗ почему у тебя, ТС, не работает, но вот выипнутся я за всегда)) Да? Ню-ню
Какой нуль в регистрах АЦП в исходном состоянии? Речь шла о результате первых преобразований, а они (в моем случае) всегда максимум.
Но хрен с ним с моими ошибками. В том же даташите написано, что при стабилизации опорного напряжения первые результаты преобразования АЦП могут быть неточными и что от них следует отказаться (п.14.5).
Что же касается темы топика, то ошибка скорее всего моя и заключается в отладочной плате которую я использую. Постоянно подключенный SPI программатор висит контактом синхронизации SCK как раз на входе ADC1 (он же PB2). Полагаю при подаче питания программатор и подавал синхроимпульсы на вход АЦП которые делали мне "погоду".
Но это не значит что вам нужно умничать, а лучше придерживаться простой истины: можешь помочь - помоги, не можешь - промолчи.
Пока вопрос решил задержкой что бы не ковырять отладочную плату и закончить программу.
Будет время - перекину на макетку и проверю.
Всем спасибо за помощь и советы (особенно veso74 который затестил на реальном камне).
"Вам бы книжки почитать", "судя по ТС", "это не Attiny"... "искромётный" юмор в стиле: я ХЗ почему у тебя, ТС, не работает, но вот выипнутся я за всегда)) Да? Ню-ню
Какой нуль в регистрах АЦП в исходном состоянии? Речь шла о результате первых преобразований, а они (в моем случае) всегда максимум.
Но хрен с ним с моими ошибками. В том же даташите написано, что при стабилизации опорного напряжения первые результаты преобразования АЦП могут быть неточными и что от них следует отказаться (п.14.5).
Что же касается темы топика, то ошибка скорее всего моя и заключается в отладочной плате которую я использую. Постоянно подключенный SPI программатор висит контактом синхронизации SCK как раз на входе ADC1 (он же PB2). Полагаю при подаче питания программатор и подавал синхроимпульсы на вход АЦП которые делали мне "погоду".
Но это не значит что вам нужно умничать, а лучше придерживаться простой истины: можешь помочь - помоги, не можешь - промолчи.
Пока вопрос решил задержкой что бы не ковырять отладочную плату и закончить программу.
Будет время - перекину на макетку и проверю.
Всем спасибо за помощь и советы (особенно veso74 который затестил на реальном камне).
Последний раз редактировалось dds7sdd Ср авг 14, 2024 12:01:05, всего редактировалось 1 раз.
Re: ADC Attiny13 состояние после вкл\вкл
[uquote="dds7sdd",url="/forum/viewtopic.php?p=4610693#p4610693"]Вопрос: Почему переменная АЦП, до начала преобразования, равна максимуму[/uquote]
Книжку читай, дитятко.
Добавлено after 1 minute 51 second:
[uquote="dds7sdd",url="/forum/viewtopic.php?p=4615026#p4615026"]то ошибка скорее всего моя[/uquote] да не, не может этого быть!
ошибаются только олды
Я смотрю, янги, как и прежде, тупят, видно, писька не выросла, измерять нечем.dds7sdd писал(а):Речь шла о результате первых преобразований
Книжку читай, дитятко.
Добавлено after 1 minute 51 second:
[uquote="dds7sdd",url="/forum/viewtopic.php?p=4615026#p4615026"]то ошибка скорее всего моя[/uquote] да не, не может этого быть!
Re: ADC Attiny13 состояние после вкл\вкл
Олды пытались (зачем, правда, не совсем понятно) донести тебе простейшие азы, но ты стойко держал оборону. Молодец.dds7sdd писал(а):Я смотрю олды нынче в ударе! Письками меряютсо


