Страница 6 из 7

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Пт авг 27, 2021 13:20:59
slav0n
понятно, кода не будет

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Пт авг 27, 2021 18:12:19
Dimon456
slav0n, ты теряешься.
Раз программист исходит из тз и электрической схемы, ну поставь тз так и создай схему так, что бы он долго голову ломал.

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Пт авг 27, 2021 18:36:21
slav0n
та он уже голову сломал, судя по выкрутасам

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Пт авг 27, 2021 20:14:38
COKPOWEHEU
[uquote="slav0n",url="/forum/viewtopic.php?p=4082185#p4082185"]понятно, кода не будет[/uquote]
Конечно не будет пока не сформулируете наконец чего же вы хотите.

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Пт авг 27, 2021 20:25:59
slav0n
хочу повторения своего алгоритма, но "по-правильному"

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 00:23:17
COKPOWEHEU
Третий раз спрашиваю: описание задачи будет или нет? Не ваших попыток решения, а то, чего вы хотите добиться.

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 04:33:34
slav0n
COKPOWEHEU писал(а):Самое надежное - остановить ШИМ на некоторое время и измерить.
какая прэлэсть, использовать аппаратный ШИМ и останавливать его где попало...

ну, ладно, вот задача: измерять в каждом периоде ШИМ ток зарядки с максимально возможной задержкой после положительного фронта импульса ШИМ, напряжение без зарядки с максимально возможной задержкой после отрицательного фронта и все это без остановки ШИМ.
решай, пожалуйста

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 07:07:57
Starichok51
а если к концу зарядки положительный импульс станет таким узким (снижение зарядного тока), что не только не будет времени на задержку, но и не хватит времени сделать измерение, пока длится импульс?

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 07:23:21
slav0n
1. у меня задержка регулируется автоматически и всегда максимальна
2. если импульс настолько короткий, что не дает измерять, то он и не нужен, тупо вырубаем таймер. все, конец зарядки

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 08:27:29
COKPOWEHEU
[uquote="slav0n",url="/forum/viewtopic.php?p=4082498#p4082498"]ну, ладно, вот задача: измерять в каждом периоде ШИМ ток зарядки с максимально возможной задержкой после положительного фронта импульса ШИМ, напряжение без зарядки с максимально возможной задержкой после отрицательного фронта и все это без остановки ШИМ.
решай, пожалуйста[/uquote]
Я что, недостаточно понятно написал?
Сформулируйте задачу, а не свои попытки решения.

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 09:11:35
slav0n
повторяю второй раз
slav0n писал(а):измерять в каждом периоде ШИМ ток зарядки с максимально возможной задержкой после положительного фронта импульса ШИМ, напряжение без зарядки с максимально возможной задержкой после отрицательного фронта и все это без остановки ШИМ.

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 09:30:53
kote52
[uquote="slav0n",url="/forum/viewtopic.php?p=4082498#p4082498"]измерять в каждом периоде ШИМ ток зарядки с максимально возможной задержкой после положительного фронта импульса ШИМ, напряжение без зарядки с максимально возможной задержкой после отрицательного фронта и все это без остановки ШИМ.[/uquote]
перефразирую для себя, когда почти и вот уже смена фронта произойодет, т.е. где ток будет максимально наибольшим и более достоверно его получится измерить? а напряжение, получится самое минимальное возможное перед нарастающим фронтом?

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 09:52:59
slav0n
думаю с током будет то же самое, что и с напряжением - под конец импульса он будет уменьшаться и стабилизироваться

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 10:04:03
kote52
[uquote="slav0n",url="/forum/viewtopic.php?p=4082541#p4082541"]под конец импульса он будет уменьшаться и стабилизироваться[/uquote]
а мне казалось так, поведение тока такое

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 10:09:55
slav0n
да... а на самом деле вона как:
http://primuss3.com/forum/index.php?top ... 0#msg15490

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 18:09:30
COKPOWEHEU
[uquote="slav0n",url="/forum/viewtopic.php?p=4082533#p4082533"]повторяю второй раз[/uquote]
Видимо, внятного ТЗ я так и не дождусь...
Если речь о зарядке аккумулятора, то логично после ШИМ поставить LC-цепочку для сглаживания пульсаций. Соответственно, измеряется постоянный ток и изредка, при остановке ШИМ, напряжение.
Ладно, не хотите реальной помощи, не надо. Так и быть набросаю по вашему странному алгоритму. Разумеется, поскольку в реальности применяться это не будет, большую часть настроек возьму от балды.

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 18:47:42
neid
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4082715#p4082715"]то логично после ШИМ поставить LC-цепочку для сглаживания пульсаций. Соответственно, измеряется постоянный ток и изредка, при остановке ШИМ, напряжение.[/uquote]
Вы видимо не знаете об импусных зу, там и привествуется именно заряд 19В на частоте около 1kHz, или десульфатор - тат же ЗУ но через дросель, плюс эл. конденсатор на 1000uf на той же частоте, заполнение ШИМ правдо около10% может и меньше. LC цепочка там не нужна, ну если сотворить из этого обычную автозарядку с порогом 14.4В.

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Сб авг 28, 2021 19:05:03
COKPOWEHEU
Ну, грубо говоря, так:

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

#define ADCSRA_START (1<<ADEN | 1<<ADSC | 1<<ADFR | 0b110 << ADPS0) //F_CPU/64
#define ADC_TIME_TIMER 30 //сколько тактов таймера длится аналого-цифровое преобразование. Пусть например 30
#define ADC_LOW		(0b01<<REFS0 | 0) //ADC0
#define ADC_HIGH	(0b01<<REFS0 | 1) //ADC1

ISR(TIMER1_COMPB_vect){
  static uint8_t flag_low = 0;
  if(flag_low){
    adc_H = ADCH;
    ADMUX = ADC_LOW;
    ADCSRA = ADCSRA_START;
    OCR1B = OCR1A - ADC_TIME_TIMER;
    flag_low = 0;
    PORTC |= (1<<4);
  }else{
    adc_L = ADCH;
    ADMUX = ADC_HIGH;
    ADCSRA = ADCSRA_START;
    OCR1B = ICR1 - ADC_TIME_TIMER;
    flag_low = 1;
    PORTC &=~(1<<4);
  }
}
У AVR в режиме ШИМов включается двойная буферизация регистров, поэтому измерение проходит только на половине импульсов ШИМ.

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Вс авг 29, 2021 07:02:49
slav0n
ну что тут скажешь... оригинально
а где же аппаратный ШИМ? где разгрузка ядра?..

Re: Фильтр АЦП atmega 8 по нижней границе

Добавлено: Вс авг 29, 2021 08:26:37
COKPOWEHEU
В смысле "где"? На канале А, естественно. PC4 это просто отладочный вывод.