📄 pic_motor.c
字号:
//#include "E:\homework\OMAP\PIC18F6520皑笷\test.h"
#include <18F6520.h>
#device adc=8
#use delay(clock=20000000)
#fuses NOWDT,WDT128,HS, BROWNOUT, BORV25, STVREN, LVP
#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <string.h>
char command[10];
byte count;
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_2);
setup_timer_2(T2_DIV_BY_1,100,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_timer_4(T4_DISABLED,0,1);
enable_interrupts(INT_RDA);
enable_interrupts(global);
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
setup_ccp3(CCP_PWM);
setup_ccp4(CCP_PWM);
set_pwm1_duty(0);
set_pwm2_duty(0);
set_pwm3_duty(0);
set_pwm4_duty(0);
output_bit(PIN_B0,0);
output_bit(PIN_B1,0);
output_bit(PIN_B2,0);
output_bit(PIN_B3,0);
while(1);
}
////////////////////////////////////////////////////////////////////////////////////
#int_RDA
RDA_isr()
{
gets(command);
// printf("\n\r ACK\n\r");
if(strlen(command)==3)
{
count=(int)command[2]-48;
}
else if(strlen(command)==4)
{
count=((int)command[2]-48)*10+(int)command[3]-48;
}
else if(strlen(command)==5)
{
count=((int)command[2]-48)*100+((int)command[3]-48)*10+(int)command[4]-48;
}
switch(command[0])
{
case'a':
if(command[1]=='+')
output_bit(PIN_B0,0);
else if(command[1]=='-')
output_bit(PIN_B0,1);
set_pwm1_duty(count);
break;
case'b':
if(command[1]=='+')
output_bit(PIN_B1,0);
else if(command[1]=='-')
output_bit(PIN_B1,1);
set_pwm2_duty(count);
break;
case'c':
if(command[1]=='+')
output_bit(PIN_B2,0);
else if(command[1]=='-')
output_bit(PIN_B2,1);
set_pwm3_duty(count);
break;
case'd':
if(command[1]=='+')
output_bit(PIN_B3,0);
else if(command[1]=='-')
output_bit(PIN_B3,1);
set_pwm4_duty(count);
break;
default: break;
}
// printf("\n\r ACK1\n\r %U",count);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -