| Микроконтроллеры | Ликбез по С для микроконтроллеров 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—2025  | 
|||