📄 control1_motor.bak
字号:
#device PIC16F877 *=16 ADC=10
#include <16f877.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,PUT
#use delay(clock=20000000) // 20 MhZ
#use rs232(baud=115200,parity=N,xmit=PIN_C6, rcv=PIN_C7)
#define Kp 0.8
//#define Ki 1.5
//A5:direction
//E1:enable
//C2:PWM
int set_value=50;
int16 xung;
int16 duty=0;
int16 err=0;
float p=0;
#int_rtcc
void samplingtime()
{
xung = get_timer1();
set_timer1(0);
set_timer0(60);
}
void main()
{
setup_CCP1(CCP_PWM);
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER0);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
setup_timer_1 (T1_EXTERNAL);
setup_timer_2 ( T2_DIV_BY_1, 255, 1);
set_PWM1_duty(0);
output_high(PIN_E1);
output_high(PIN_A5);
set_timer0(60);
set_pwm1_duty(500);
while(1)
{
printf("Xung= %ld\r",xung);
delay_ms(10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -