Микроконтроллеры | Ликбез по С для микроконтроллеров PIC |
|
---|---|---|
2 Vladikas |
|
|
Прошу прощения... Думал, что set_pwm1_duty(value) это самодельная функция, а она встроенная. Тем не менее спасибо за готовый проект. Заметил некое дрожание импульсов. Что-то не так... |
|
|
Не за что. Vladikas : Заметил некое дрожание импульсов. Что-то не так... У меня это дрожание то проявляеться, то исчезает, в не зависимости от программы. |
|
|
А может это следствие программности ШИМа? Когда делал несколько независимых программных ШИМов на асме, то боролся с дрожанием (джиттер вроде называется), следил чтоб по какому бы пути программа не пошла время обработки счётчиков было бы одинаковым, вплоть до одного машинного такта. А в железе есть возможность проверить? |
|
|
Vladikas: следил чтоб по какому бы пути программа не пошла время обработки счётчиков было бы одинаковым, вплоть до одного машинного такта. Не совсем пойму про обработку счетчиков, можно поподробней? |
|
|
Left Radio: Не совсем пойму про обработку счетчиков, можно поподробней? |
|
|
Vladikas: В этом компиляторе нельзя ассемблерный код посмотреть, типа как в МикроСи делается? Можно, вкладка Compile, пункт C/ASM List . Возник злободневный вопрос, как можно не делением разложить число, типа 1024, полученное от АЦП в в четыре числа: 1;0;2;4 ? |
|
|
Left Radio: Возник злободневный вопрос, как можно не делением разложить число, типа 1024, полученное от АЦП в в четыре числа: 1;0;2;4 ? raz0=0x00; // можно писать сразу 0x30, для алфавитно-цифр. ЖКИ, вместо нулей тут. Потом подсчитываем(переменная chet - это int16 результат от АЦП): while(chet>=1000) {raz0++; chet-=1000;} |
|
|
2 AleksBak Спасибо! |
|
|
Можно оптимизировать немного верхний фрагмент кода, отказаться от переменной raz3 или chet. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |