Блок питания с микроконтроллерным управлением

Обсуждаем цифровые устройства...
Ответить
shemmer
Открыл глаза
Сообщения: 58
Зарегистрирован: Вс сен 09, 2007 07:13:08
Контактная информация:

Блок питания с микроконтроллерным управлением

Сообщение shemmer »

Занимаюсь проектом: Блок питания с микроконтроллерным управлением который содержит следующие качества
1. Кнопочное регулирование напряжения 0-25
с шагом 0.1 и 1 В
2. Измерение напряжения и тока и вывод на 3-х сегментный LED
3. Макс ток нагрузки ~3-4А.
4. Регулируемая защита по току
5. Звуковой сигнал при замыкании + и -

Хотел уточнить как правильно инициализировать АЦП
Включать прерывание по завершению преобразования?
А то в PROTEUS если ставить с прерыванием то он показывает только текущее значение напряжения. Т.е. показания не меняются при изменении напряжения. Изменение происходит только после OFF-ON
Или это дело в симуляторе?
Реклама
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

А вот "умный" БП на ATmega169 - http://www.circuitcellar.com/archives/v ... 06/12.html
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Реклама
Аватара пользователя
Мышонок
Друг Кота
Сообщения: 3792
Зарегистрирован: Чт сен 14, 2006 11:42:09
Откуда: Обитаю на чердаке
Контактная информация:

Сообщение Мышонок »

Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Artem333
Встал на лапы
Сообщения: 119
Зарегистрирован: Вт апр 17, 2007 15:24:47
Откуда: Новосиб

Сообщение Artem333 »

Вот пример инициализации и использования АЦП на асме для AVR:

инициализация:
;*************** ADC ***************
ldi tmph,0b10001110 ;режим и частота АЦП
out adcsr,tmph

ldi tmph,0b01000000 ;мультиплексор и ИОН
out admux,tmph

;ldi tmph,0b00010000 ;повышение скорости преобразования но 8 бит
;out sfior,tmph
;*************** ADC ***************
использование (прерывание от АЦП):
;********************** АЦП *************************
adc_0:
push tmph
in vrm1,sreg
push vrm1

in ADCg,ADCL ;считывание младшего байта
in common,ADCH ;считывание старшего байта
sbi adcsr,adsc ;запуск следующего преобразования

pop vrm1
out sreg,vrm1
pop tmph
reti
;********************** АЦП ********** END **********
Всё просто как самогонный аппарат
Реклама
Эиком - электронные компоненты и радиодетали
shemmer
Открыл глаза
Сообщения: 58
Зарегистрирован: Вс сен 09, 2007 07:13:08
Контактная информация:

Сообщение shemmer »

Да понятно в CVAVR вот так:

interrupt [ADC_INT] void adc_isr(void){
Vizm=ADCW;
Vpr = (float) Vizm;
Vpr = Vpr * 0.03128;
Vdec = (int) Vpr;
Vpr = Vpr - (float) Vdec;
Vpr = Vpr * 1000;
Vmili = (int) Vpr;
}
Дальше преобразовываю в BCD и вывожу на LED.(ADCSRA=0b11011111;
ADMUX=0b11000000
Но он делает преобразование 1 раз и останавливается.
Если установить ADFR=1, то в протеусе на индикаторе кракозябры
(может на железе будет нормально?)
Как заставить делать преобразование многократно?
Реклама
shemmer
Открыл глаза
Сообщения: 58
Зарегистрирован: Вс сен 09, 2007 07:13:08
Контактная информация:

Сообщение shemmer »

Почему вычисления верны если они обрабатываются в прерывании?
Если я их вынощу из прерывания то начинает показывать всякую всячину?

Т.Е. если делаю вот так:
interrupt [ADC_INT] void adc_isr(void){
adc_data=ADCW;
}
.....
void main(void)
{
ADMUX=0b11000000;
ADCSRA=0b11011111;

#asm("sei")

while(1)
{

Vizm=adc_data ;
Vpr = (float) Vizm;
Vpr = Vpr * 0.03128;
Vdec = (int) Vpr;
Vpr = Vpr - (float) Vdec;
Vpr = Vpr * 1000;
Vmili = (int) Vpr;
Помогите пожалуйста разобраться
Реклама
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Надо код сравнить
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Artem333
Встал на лапы
Сообщения: 119
Зарегистрирован: Вт апр 17, 2007 15:24:47
Откуда: Новосиб

Сообщение Artem333 »

К сожалению си незнаю но на асме необходимо считать сначала младший байт из ацп, а затем старший. Но не наоборот. Бился над этим 2 дня. Возможно у тебя что-нибуть подобное.
Всё просто как самогонный аппарат
shemmer
Открыл глаза
Сообщения: 58
Зарегистрирован: Вс сен 09, 2007 07:13:08
Контактная информация:

Сообщение shemmer »

От асма отличается только тем что здесь результат хранится в виртуальном 16-битном регистре ADCW
Вот в нем-то и хранится результат АЦП
Ответить

Вернуться в «Цифровая техника»