Menen 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба Только взялся за BASCOM-AVR. Подскажите как организовать измерение напряжения на встроенном АЦП? Заранее благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aai_m 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба В ATiny2313 встроенного ADC отродясь не водилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба Только взялся за BASCOM-AVR. Подскажите как организовать измерение напряжения на встроенном АЦП? Заранее благодарен. Скачал даташит на ATtiny2313: про встроенный АЦП там не упоминается... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Menen 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба Понял. Спасибо. А какой МК пойдет? С наименьшей ценой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aai_m 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба Понял. Спасибо. А какой МК пойдет? С наименьшей ценой? Вопрос не полный. Какой частотный диапазон измеряемого сигнала? Какой требуется динамический диапазон? Часто бывает что встроенный ADC проблемы не решает. К сожалению. Что вы собираетесь измерять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Menen 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба Необходимо мерять напряжение на аккумуляторе, и в зависимости от напряжение моргать 3 светодиодами.... Т. е. требования минимальны, а вот подходящего кода нийти не мог... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aai_m 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 (изменено) · Жалоба Необходимо мерять напряжение на аккумуляторе, и в зависимости от напряжение моргать 3 светодиодами.... Т. е. требования минимальны, а вот подходящего кода нийти не мог... Тогда пожалуй Tiny13 или Tiny26. Они выпускаются и доступны по цене. Уважаемый Mener, напишите в личное письмо. Попытаюсь помочь Изменено 17 апреля, 2007 пользователем aai_m Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Menen 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба А как включить АЦП, и получать данные о напряжении? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rumit2000 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба Необходимо мерять напряжение .... А насколько дискретен посчёт напряжения? Если 3 светодиода - это типа уровень напряжения... может 3 компаратора на ОУ дешёвеньких поставить? Типо напряжение в диапазоне 0-12В если 10-12 - все три горят если 7-10 - два если 4-7 - один если 0-4 - ни один не горит - тогда и МК не нужён ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sadat 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба Человек хочет AVR освоить, а вы ему вернуться на аналоговую базу.... Вот код инициализации АЦП для Tiny13: Измеряемое напряжение на вход PB2 (DDR=0) ;блок включения АЦП ldi R16, 0b00000100; выключили цифровой вход PB2 (ADC1) out DIDR0,R16; ldi R16,0b00100001 ; привязка к 5 в питания, выравнивание "меньше", MUX = 01 - PB2 ввод ; ADLAR=1 - т.е. выравнивание "влево" по ADCH-ADCL (ADCH - 0-255). out ADMUX,R16; ldi R16, 0b11001110; разрешили прерывание, режим одиночного с делением тактовой на 64 out ADCSRA, R16; И по выполнению преобразования выполнится прерывание от АЦП (внимательно читать даташит - т.е. RTFM). В обработчике прерывания считываешь ADCH - 0-0вольт, 255 - Vdd на входе. in R16, ADCL; nop nop in R16, ADCH; Обязательно при считывании сначала младший (он нам не нужен), затем - старший.... Считывать данные можно и по флагу окончания преобразования,ИМХО, ждать как-то нехорошо простаивать ресурсы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 17 апреля, 2007 Опубликовано 17 апреля, 2007 · Жалоба ldi R16,0b00100001 ; привязка к 5 в питания, выравнивание "меньше", MUX = 01 - PB2 ввод ; ADLAR=1 - т.е. выравнивание "влево" по ADCH-ADCL (ADCH - 0-255). .......................................... В обработчике прерывания считываешь ADCH - 0-0вольт, 255 - Vdd на входе. in R16, ADCL; nop nop in R16, ADCH; Обязательно при считывании сначала младший (он нам не нужен), затем - старший.... Считывать данные можно и по флагу окончания преобразования,ИМХО, ждать как-то нехорошо простаивать ресурсы... Раскажите пожалуйста откуда Вы взяли это "Обязательно при считывании сначала младший" В моем даташите написано вот так :) If the result is left adjusted and no more than 8-bit precision is required, it is sufficient to read ADCH. Otherwise, ADCL must be read first, then ADCH, to ensure that the content of the Data Registers belongs to the same conversion. Once ADCL is read, ADC access to Data Registers is blocked. This means that if ADCL has been read, and a conversion completes before ADCH is read, neither register is updated and the result from the conversion is lost. When ADCH is read, ADC access to the ADCH and ADCL Registers is re-enabled. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Menen 0 18 апреля, 2007 Опубликовано 18 апреля, 2007 · Жалоба Человек хочет AVR освоить, а вы ему вернуться на аналоговую базу.... Вот код инициализации АЦП для Tiny13: Измеряемое напряжение на вход PB2 (DDR=0) ;блок включения АЦП ldi R16, 0b00000100; выключили цифровой вход PB2 (ADC1) out DIDR0,R16; ldi R16,0b00100001 ; привязка к 5 в питания, выравнивание "меньше", MUX = 01 - PB2 ввод ; ADLAR=1 - т.е. выравнивание "влево" по ADCH-ADCL (ADCH - 0-255). out ADMUX,R16; ldi R16, 0b11001110; разрешили прерывание, режим одиночного с делением тактовой на 64 out ADCSRA, R16; И по выполнению преобразования выполнится прерывание от АЦП (внимательно читать даташит - т.е. RTFM). В обработчике прерывания считываешь ADCH - 0-0вольт, 255 - Vdd на входе. in R16, ADCL; nop nop in R16, ADCH; Обязательно при считывании сначала младший (он нам не нужен), затем - старший.... Считывать данные можно и по флагу окончания преобразования,ИМХО, ждать как-то нехорошо простаивать ресурсы... Это код бля Баском? Побегу за тини 13... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sadat 0 18 апреля, 2007 Опубликовано 18 апреля, 2007 · Жалоба MENEN-у - чистый асм - это основа, без которой более "интеллектуальные" языки программирования - фикция (ИМХО). singlskv - считывать младший байт перед считыванием старшего - будь то ADC или 16-ти разрядный таймер - это универсально и стоит использовать всегда (тоже ИМХО) - чтобы не наступать на грабли, когда захочется использовать сдвоенный регистр полностью, а по привычке "сначала старший, затем младший..." Менен-у - извини, просмотрел, что ты хотел BASCOM - а на BASIC (т.е. основа). Но, если быть честным, у меня ушло 5 минут, чтобы найти нужный тебе код в инете... But the ATTiny can do more. It has a 10-bit ADC on pins 1, 2, 3 and 7. An example program to read one ADC channel: readadc.bas 'The ATTiny13 is used. $regfile = "ATtiny13.dat" $crystal = 1200000 Config Portb.2 = Output Led Alias Portb.2 Config Adc = Single , Prescaler = Auto , Reference = Internal Dim Adcin As Word Open "comb.1:9600,8,n,1" For Output As #1 Open "comb.0:9600,8,n,1" For Input As #2 Start Adc Do Set Led Waitms 500 'get adc reading on channel 3 (pin 2 on attiny13) Adcin = Getadc(3) Print #1 , "adc ch#3: " ; Adcin Reset Led Waitms 500 Loop End Ссылка на примеры в BASC-е. http://www.qsl.net/pa3ckr/ Откуда часть http://www.qsl.net/pa3ckr/bascom%20and%20a...avrs/index.html Желаю удачи! + Менен-у - вроде как мат на этом форуме не используется (см. посл. сообщение). Аккуратнее... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Menen 0 18 апреля, 2007 Опубликовано 18 апреля, 2007 · Жалоба Огромное спасибо буду разбираться!!! :cheers: Описался На одну букву там, должно быть ДЛЯ..... Прикладываю небольшую статью про описки... ______.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Menen 0 18 апреля, 2007 Опубликовано 18 апреля, 2007 (изменено) · Жалоба Еще раз спасибо. Разбираюсь... Чет немогу отредактировать сообщение с ругательством.... :unsure: Изменено 18 апреля, 2007 пользователем Menen Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться