плавно ШИМ-ом управлять нагрузкой подключеной к переменному току (моторы, эл. инструменты) можно двумя полевыми транзисторами -например IRF840 (любые MOSFET на напряжение более 400 вольт и ток в 3-5 раз более максимального)
Открываем Clock value и там 5 различных частот, но как если я хочу например 50 гц для управления сервой при моем кварце 14.7456 миниму что я могу выбрать примерно 14 кГц
Почему тут ШИМ не подойдет? Если частота у него будет 50 Гц то все будет нормально. Как реализовать это программно я знаю и не хочу этого делать т.к. это останавливает МК на 1/10 что вообщем то нехорошо для моей задачи. Вопрос в том можно ли сделать ШИМ нудной мне частоты а именно 50 Гц.
прерывание_таймер_0 \\ 50 раз в секунду { PORTB.0=1; delay(x); \\ ждем сколько нужно PORTB.0=0; }
Если так то получеам что МК через каждые 20 мс останавливаеться на от 1 до 2 мс, тоесть примерно на 1/10 своего рабочего времени. Я спрашиваю еще раз как сделать частоту ШИМ 50 гц ??? Или это вообще не возможно? Если это невозможно, кто-то говорил что для управление сервы необходим ШИМ частотой 50 гц, или он обманывал?
Из нашего разговора я так ничего и не понял. По форму я уже искал но к сожалению ничего не нашел. Как установить нужную мне частоту я так и непонял менять битность и делители можно, но толку это не дает, частоту кварца менять я не буду т.к. на это частоте слишком много чего завязано. Сижу читаю про режимы работы ШИМа на mega128 (т.к. русский) но понять что либо очень сложно.
в этом коде меня смущает TCCR1B = 0x00; //stop Timer ...а потом... TCCR1B = 0x09; //start Timer зачем его стопать ? в случаее TCCR1B = 0x00=0000 0000b; ну уж никак не будет fast PWM 10bit... тк. WGM13=0; WGM12=0!!! TCCR1B = 0x09=0000 1001b; тут уже эти биты стоят как надо, типо проверили по таблице 47 режим 7.PWM 10bit. или это "правильный" способ запуска таймера ? WBR