⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cm

📁 Embedded camera control program.
💻
字号:
#include <16F877.h>
//#device  PIC16F877 *=16 ADC=10
#include <stdlib.h>
#include <math.h>
#fuses hs, nowdt, noprotect, put, nolvp, brownout
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)

#define Kp 0.8
#define Ki 2.5
  int16 set_value=20; 
  int16 xung;
  signed int16 error=0; 
  float error_p;
  float error_pi; 
  int16 duty=0;
  int16 error_before=0; 
   #int_RTCC
   void samplingtime()
 {
   xung=get_TIMER1();
   error = xung-set_value;
   error_p = error*Kp;
   error_pi = error_p + error_before*Ki;
   duty += ceil(error_pi);
   duty=(duty<60?60:duty);
   duty=(duty>1023?1023:duty);
   set_PWM1_duty(duty);
   error_before+=error;
   set_timer1(0);
   set_timer2(60);
 }
void main()
{
   setup_CCP1(CCP_PWM);
   setup_TIMER_0(RTCC_DIV_256|RTCC_EXT_L_TO_H);
   setup_TIMER_2(T2_DIV_BY_1, 255, 1);
   setup_TIMER_1( T1_EXTERNAL );

      enable_interrupts(GLOBAL);
      enable_interrupts(INT_TIMER0);

   set_PWM1_duty(0);
   output_high(PIN_A2);
   output_high(PIN_A5);
   set_timer0(60);     //sampling_time = (255-60)*4*256/20000000=9.984 ms
   while (1)
   {
   }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -