Разрешение ШИМ на рис. 16F877

здесь я использую микроконтроллер pic 16f877 и компилятор mikroc для pic, чтобы понять сигналы ШИМ. в техническом описании сказано, что этот микроконтроллер имеет 10-битное разрешение в ШИМ. Я не могу понять, что означает это разрешение. означает ли это, что если я использую его для питания двигателя, я могу получить 1024 различных скорости. вот программа, которую я написал в микросе, чтобы постепенно увеличивать яркость светодиода и снова уменьшать ее.

int i=0;

void blink_up(){
  i++;
  PWM1_Set_Duty(i);
  Delay_ms(10);
}

void blink_down(){
  i--;
  PWM1_Set_Duty(i);
  Delay_ms(10);
}


void main() {
  trisc=0;
  portc=0;

  PWM1_Init(5000); //initilize PWM 1 at 5kHz
  PWM1_Start();
  PWM1_Set_Duty(i);

 while(1){
    while(i != 1023){
     blink_up();
    }

    while(i!=0) {
     blink_down();
  }

}

но это не даст ожидаемых результатов. светодиод постепенно загорается и внезапно выключается и снова постепенно мигает. но когда я меняю строку while(i != 1023) на `пока (i!= 255) это дает ожидаемые результаты.

поэтому я хочу знать, что означает 10-битное разрешение, я понял это неправильно или я все делаю неправильно.

пожалуйста помоги....


person danial weaber    schedule 16.07.2013    source источник


Ответы (2)


наконец я получил решение. я дам его, потому что это может быть полезно для кого-то еще.

библиотека mokroc pwm не поддерживает 10 бит. поэтому PWM1_Set_Duty() принимает только число от 0 до 255. Это от 0% до 100% рабочего цикла. если вы хотите использовать 10-битное разрешение, вы должны сделать это вручную для регистров.

person danial weaber    schedule 16.07.2013
comment
Спасибо за напоминание. :) Рад, что вы смогли решить свою проблему. - person Tevo D; 17.07.2013

Теперь, когда вам удалось заставить код работать, попробуйте использовать внутренние регистры PIC. Разрешение в 10 бит намного мощнее, скажем, для RGB-светодиодов, чем 8-битное. Самостоятельно заставить его работать не так уж и сложно, это прописано прямо в техпаспорте, и есть много веб-сайтов, предоставляющих вам функции для расчета коэффициента заполнения и частоты вашего модуля ШИМ.

Спецификация для режима CCP (PWM) от MicroChip: http://ww1.microchip.com/downloads/en/DeviceDoc/31014a.pdf

person Jean-francois    schedule 06.06.2014