Сб ноя 18, 2023 22:37:42
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <Wire.h>
volatile int adc_l;
volatile int adc_HL;
volatile float adc_val;
//границы переменных
int grany (int peremen, int a1, int b1) {
if (peremen<=a1) {peremen=a1;}
if (peremen>=b1) {peremen=b1;}
return peremen;
}
int OCR1A_plus () {
if (OCR1A>=253) {OCR1A=254;}
else {OCR1A++;}
return 0;
}
int OCR1A_minus () {
if (OCR1A<=2) {OCR1A=0;}
else {OCR1A--;}
return 0;
}
int main (void) {
DDRB|=1<<PB1|0<<PB4;
//~~~~~~~~~~~~~~~~~~~~~~~~ШИМ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// |состояние выхода OC1A| вкл.PWM| 4 бита предделителя частоты|
TCCR1=0<<COM1A1|1<<COM1A0|1<<PWM1A|1<<CS10|1<<CS11|1<<CS12|0<<CS13;
OCR1A=200;//установка скважности
//~~~~~~~~~~~~~~~~~~~~~~~~АЦП~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// ист. опорного напр. 2.56V| выбор канала АЦП ADC1 (PB4) |
ADMUX|= 0<<REFS0|1<<REFS1|1<<REFS2|0<<MUX0|1<<MUX1;//|0<<MUX2|0<<MUX3;
// вкл.АЦП|авт. режим|старт |предделитель частоты АЦП на 128 |
ADCSRA|=1<<ADEN|1<<ADATE|1<<ADSC|0<<ADPS0|1<<ADPS1|1<<ADPS2;
while(1){
adc_l=ADCL; //значение входного напряжения в нижнем регистре
adc_HL=(ADCH<<8)|adc_l;//чтение верхнего регистра вместе с нижним
adc_val = int(grany(adc_HL,0,1023));
if (adc_val>400) {OCR1A_minus();} else {OCR1A_plus ();}
}
}
Сб ноя 18, 2023 22:58:38
Вс ноя 19, 2023 11:49:28
Вс ноя 19, 2023 16:45:53
Вс ноя 19, 2023 18:22:22
Вс ноя 19, 2023 19:43:28
как я понял, ты решил создать НЕобычный DC-DC с применением МК?
Вс ноя 19, 2023 19:50:19
Вс ноя 19, 2023 19:59:33
Вс ноя 19, 2023 20:02:06
Ср ноя 22, 2023 14:22:38
Ср ноя 22, 2023 17:04:50
я не спрашивал, что будет регулироваться - я спрашивал, чем твой ШИМ будут управлять, чтобы регулировать ток?dds7sdd писал(а):коль это зарядное устройство - то ШИМ-ом будет регулироваться ток зарядки
Чт ноя 23, 2023 21:18:04
Пт ноя 24, 2023 01:39:57
Я вот тоже не могу понять, зачем на очень медленную систему АЦП МК + сам МК с его программой возлагать задачу слежения за током, когда даже самый дешманский ОУ это сделает многократно лучше.не могу понять