运动直流有刷马达PIC18Fxx41

M

myown

Guest
代码:#包括的“D:\ 4431.h”#字节QEICON = 0xFB6

#字节POSCNTH = 0xF67 / /捕获2册,高字节/ QEI位置计数器寄存器,高字节

#字节POSCNTL = 0xF66 / /捕获2册,低字节/ QEI位置计数器寄存器,低字节

#字节MAXCNTH = 0xF65 / /捕获3册,高字节/ QEI最大。
数限制注册,高字节

#字节MAXCNTL = 0xF64 / /捕获3册,低字节/ QEI最大。
数限制注册,低字节

#字节ANSEL0 = 0xFB8 / /

#位ANS2 = ANSEL0.2

#位ANS3 = ANSEL0.3

#位ANS4 = ANSEL0.4#包括“QEI.h”#字节PWMCON0 = 0xF6F / / PWM控制寄存器0

#字节PTCON0 = 0XF7F / / PWM定时器控制寄存器0

#字节PTCON1 = 0XF7E / / PWM定时器控制寄存器0

#字节PTPERH = 0xF7A / / PWM周期寄存器

#字节PTPERL = 0xF7B / / PWM周期寄存器#使用fast_io(甲)

#使用fast_io(乙)

#使用fast_io(丙)#字节门= 0xF80

#PORTB的字节= 0xF81

#字节PORTC = 0xF82#位RB0上= PORTB.0

#位RB1赛车= PORTB.1/ /连接到液晶显示器(发那科3000)#位DD1 = PORTC.0 / /的XA(1)1

#位DD2型= PORTC.1 / /的XA(1)2

#位DD4 = PORTC.2 / /的XA(1)3

#位DD8 = PORTC.3 / /的XA(1)4

#位载重吨= PORTC.4 / /的XA(1)5静态符号int32 currentQEIPos,温度; / /必须签名,因为算术长。#包括的“D:\ f3000.h”#int_rtcc

无效clock_isr()/ /发光二极管显示,从3000法努克



select_axis(十);

data_output(currentQEIPos);

)无效的main()



set_tris_a(0xff);

set_tris_b(0b00111100);

set_tris_c(0);

set_tris_d(0xff);

set_tris_e(0xff);

setup_adc_ports(NO_ANALOGS | VSS_VDD);

setup_adc(ADC_OFF | ADC_TAD_MUL_0 | ADC_WHEN_INT0 | ADC_INT_EVERY_OTHER);

setup_spi(假);

setup_wdt(WDT_OFF);

setup_timer_0(RTCC_INTERNAL);

setup_counters(RTCC_INTERNAL,RTCC_DIV_2);

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DISABLED,0,1);setup_power_pwm_pins(PWM_COMPLEMENTARY,PWM_OFF,PWM_OFF,PWM_OFF);

/ / PPWM声道0和1两种相反的价值观,始终

setup_power_pwm(PWM_CLOCK_DIV_4 | PWM_FREE_RUN,1,0,1023,0,1,0);

/ /添加死无功负荷时间
enable_interrupts(INT_RTCC);

enable_interrupts(全球);

/ / setup_oscillator(假);initQEI(4);而(真)



currentQEIPos = getQEIPos();

set_power_pwm0_duty(2048);




 
嗨,

我想你有一个H桥驱动的汽车。在这种情况下,如果占空比为“50%你会给予积极的电压和旋转积极,反之亦然。
如果你想要做的位置控制,您可以使用编码器和使用之间的差异和实际需要的职位
, 要养活一家有价证券能够让你的工作周期。
有不同的控制结构的尝试,您可能要执行目前的控制或速度的立场
, 以一个内部循环控制。

 

Welcome to EDABoard.com

Sponsor

Back
Top