а иначе все делается в прерывании по переполнению - сначала читаем АЦП, затем поднимаем выход ШИМCOKPOWEHEU писал(а):А как иначе?
primuss3.com
а иначе все делается в прерывании по переполнению - сначала читаем АЦП, затем поднимаем выход ШИМCOKPOWEHEU писал(а):А как иначе?
Код: Выделить всё
u16 period, pulsewidth;
u8 flg;
ISR(TIMER1_OVF_vect)
{
if(flg){
PWM_pin_clr();//сброс выхода
ICR1 = period - pulsewidth;
flg=0;
}else{
adc_get();//читаем АЦП
PWM_pin_set();//установка выхода
ICR1 = pulsewidth;
flg=1;
}
} тю, читай два:Dimon456 писал(а):Какой Free Running, я хочу два канала ацп читать
Код: Выделить всё
u16 period, pulsewidth, V, A;
u8 flg;
ISR(TIMER1_OVF_vect)
{
if(flg){
A = ADCW;//читаем АЦП ch 1
ADMUX = (1<<REFS1)|(1<<REFS0)| (0<<MUX0);//set ch 0
PWMpin_clr();//сброс выхода
ICR1 = period - pulsewidth;
flg=0;
}else{
V = ADCW;//читаем АЦП ch 0
ADMUX = (1<<REFS1)|(1<<REFS0)| (1<<MUX0);//set ch 1
PWMpin_set();//установка выхода
ICR1 = pulsewidth;
flg=1;
}
} а иначе все делается в прерывании по переполнению - сначала читаем АЦП, затем поднимаем выход ШИМ[/uquote]COKPOWEHEU писал(а):А как иначе?
А какой смысл постоянно дергать ядро если есть аппаратный модуль, который заточен специально под это?а что мешает управлять выходом программно?
Предоставить что? Вы сначала сформулируйте какую задачу пытаетесь решить своими странными методами.и если разработчики не смогли в таком "гибком" таймере нам это предоставить
лучше иди ищи ионисторDimon456 писал(а):а если тебя попросить вторую ножку дергать в противофазе?
а ты сделай как я и все будет норм.COKPOWEHEU писал(а):и получаем либо перепад уровней во время измерения (если сделано по-человечески), либо ерунду вместо ШИМа (если он программный).
это бред. У меня ядро даже в большем расслабоне чем если бы ты сделал такой фунционал на аппаратной шим. Кстати, режим таймера СТС вполне себе аппаратныйCOKPOWEHEU писал(а):А какой смысл постоянно дергать ядро если есть аппаратный модуль
это придется долго объяснять, примерно как Димону про оверсемплингCOKPOWEHEU писал(а):Предоставить что?
А ты попробуй.slav0n писал(а):это придется долго объяснять
А что ты мне объяснил?slav0n писал(а):примерно как Димону про оверсемплинг
это "идея", просто "идея".Идея состоит в том, что ...

камеру забрали, не моя была.slav0n писал(а):а разрешение 1мВ так и не показал...
Да куда уж мне в 51, пусть помоложе стараются.slav0n писал(а):шо, не смог?
Еще раз: чтобы применять нестандартные подходы нужна очень нестандартная задача. Пока что вы ее не сформулировали.а ты сделай как я и все будет норм.
Ну так отложите свой волшебный контроллер, у которого в прерывании используется машина времени (раз тратит отрицательное процессорное время) и возьмите обычный.это бред. У меня ядро даже в большем расслабоне чем если бы ты сделал такой фунционал на аппаратной шим.
Ну, НАСТОЛЬКО экзотика в исходной задаче вряд ли нужна. Но зачем ее тогда было упоминать?это придется долго объяснять, примерно как Димону про оверсемплинг