Владимир, переделал ваш ФБ. Ввел счетчик импульсов и сброс этого счетчика. Правильно ли я все сделал ? Все что я добавил поместилось в картинке.
Владимир, переделал ваш ФБ. Ввел счетчик импульсов и сброс этого счетчика. Правильно ли я все сделал ? Все что я добавил поместилось в картинке.
Последний раз редактировалось Вольд; 02.03.2017 в 17:21.
Зависит от того, как этот блок потом использовать.
Скорее всего:
counter увеличивать нужно не каждый раз, а только по фронту.
Вместо переменной res_p можно было IF R_TRIG(CLK := res_c).Q THEN counter := 0; END_IF; Но это, наверное, дело вкуса.
Не факт, что PDM это то, что нужно в конкретной задаче.
Скорее, нужно было PWM с 50% скважностью или что-нибудь среднее между PDM/PWM.
Последний раз редактировалось Владимир Ситников; 02.03.2017 в 17:53.
А вы этот свой блок проверяли на железе ? Осциллограмму на быстром выходе смотрели ?
Например, тут: https://github.com/vlsi/pru-emulator...va/st61131/pru
Что ни один из двух ШИМ не проверялся ?