View Full Version : lap nhóm 18f4331
vinhlec4
15-12-2009, 12:27 PM
bác nào dùng con 18f4331 cùng thảo luạn nhe
mình dọc help khi lập trình co fan này kong hiẻu mong anh em giúp nhé
#FUSES NOWDT , HS , NOPROTECT
dòng tren co nghĩa là j? lam sao biết các các khai báo này của pic
giai thích dầy đủ có ví du voi nge? thanhk
rongtrang
16-12-2009, 11:36 PM
#FUSES NOWDT , HS , NOPROTECT
dòng tren co nghĩa là j? lam sao biết các các khai báo này của pic
giai thích dầy đủ có ví du voi nge? thanhk[/QUOTE]
NODWT có nghĩa là kg dùng WDTimer,HS là dùng thanh anh o chế độ high speed ,noprotect là kg bảo vệ đó.Bạn coi trong datasheet và bật file .h lên xem.Khi compile bấm vào file asm xem sẽ hiểu rõ.
rikimaru87
17-12-2009, 10:32 AM
Mình cũng từng xài con 18F4431 để điều khiển động cơ. nói chung con này có bộ đọc encoder rất good .
vinhlec4
17-12-2009, 01:24 PM
bạn cho mình hỏi băm xung dể điều khiển động cơ dùng 4331 như thê nào không?
mình mới vào nên không rõ. mình định dùng encoder nũa để điều khiển động cơ chạ thẳng nữa. bác dùng rồi chỉ mình với
rikimaru87
18-12-2009, 01:49 AM
dùng bộ pwm để điều rộng xung đó bạn . bạn chọn chu kỳ cho bộ pwm ( mình thường chọn 20khz) vì thanh ghi của bộ pwm cũa 18f4331 là 1024, nen khi lập trình bạn sẽ điều rộng xung bằng cách set_pwm1_duty(PWMduty);
ví dụ :
set_pwm1_duty(512); vậy là bạn đã có 1 xung ra với duty =50% rùi đó .
vinhlec4
18-12-2009, 07:28 AM
bạn chọn chu kỳ bộ rộng xung dựa vào j thế ? nếu nhỏ wa sẽ có lợi có hại j? còn lớn qua thì sao bạ? mình cảm ơn bạn đã trả lời mình.
mình muốn dùng encoder thì nối chân nào pic 4331? píc 4331 hổ trợ cho encoder k zay?
xuanohyes89
30-12-2009, 04:46 PM
Mình cũng từng xài con 18F4431 để điều khiển động cơ. nói chung con này có bộ đọc encoder rất good .
Anh ơi a nghiên cứu con này rùi
Anh có tài liệu về nó share cho e học hỏi với
E mói bắt đầu học thui
thank
Email : xuanohyes89@gmail.com
vinhlec4
30-12-2009, 08:45 PM
minh dang nghien cuu nen dang di xin tai lieu day/
quoc_vu
30-12-2009, 09:12 PM
mình đang xài 4431 với module Power pwm + motion feedback . neu cần qua DHBK khoa cơ khí mình chỉ cho
vinhlec4
31-12-2009, 02:59 PM
bac o truong nao do? gaop thi lam sao gap dc day
vutru
20-01-2010, 04:06 PM
bác nào dùng con 18f4331 cùng thảo luạn nhe
mình dọc help khi lập trình co fan này kong hiẻu mong anh em giúp nhé
#FUSES NOWDT , HS , NOPROTECT
dòng tren co nghĩa là j? lam sao biết các các khai báo này của pic
giai thích dầy đủ có ví du voi nge? thanhk
em cũng bắt đầu nghiên cứu con này mong mọi người giúp đỡ!em chưa biết cách băm xung cho nó. bác nào làm được giup em với
vutru
20-01-2010, 04:10 PM
các bác chịu khó post code lên cho mọi người tham khảo!
vinhlec4
25-04-2010, 04:16 PM
co ai biet cach chong nhieu encorder k?minh bi nhieu k the dieu khien dc
trong_re
29-05-2010, 01:58 AM
bạn à con 18f4431 có 4 kênh điều xung và 2 kênh ccpx .mà thanh ghi của pwm là 14bit vây tuy vao việc bạn khai báo chế độ làm việc với bộ chia tần thì giá trị pwm điều khiển xẽ khác
hovanphu
21-06-2010, 11:21 AM
bác nào dùng qei trên con này chưa?cách thiết lập và sử dụng nó để đọc encoder như thế nào?chỉ cho ae dzoi!
thankS!
robotpic
21-06-2010, 06:11 PM
đây là tài liệu mình tìm được để khai bao #fuses cho pic 4331.bác nào biết vào chỉ giúp ý nghĩa của nó với.
#include <18F4431.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postsc
#FUSES HS //High speed osc with HW enabled 4X PL
#FUSES NOPROTECT //Code not protected from reading
#FUSES IESO //Internal External Switch Over mode en
#FUSES BROWNOUT //Reset when brownout detected
#FUSES BORV27 //Brownout reset at 2.7V
#FUSES NOPUT //No Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES NOSTVREN //Stack full/underflow will not cause reset
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC1 8) used for I/O
#FUSES NOWRT //Program memory not write protected
#FUSES NOWRTD //Data EEPROM not write protected
#FUSES NOFCMEN //Fail‐safe clock monitor disabled
#FUSES NOWINEN //WDT Timer Window Disabled
#FUSES T1LOWPOWER //Timer1 low power operation when in sleep
#FUSES HPOL_HIGH //High‐Side Transistors Polarity is Active‐H igh (PWM 1,3,5 and 7)
//PWM module high side output pins have activ e high output polarity
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOWRTB //Boot block not write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOEBTRB //Boot block not protected from table reads
#FUSES NOCPB //No Boot Block code protection
#FUSES LPOL_HIGH //Low‐Side Transistors Polarity is Active‐Lo w (PWM 0,2,4 and 6)
#FUSES PWMPIN //PWM outputs disabled upon Reset
#FUSES MCLR //Master Clear pin enabled
#FUSES FLTAC1 //FLTA input is multiplexed with RC1
#FUSES SSP_RD //SCK/SCL=RD3, SDA/SDI=RD2, SDO=RD1
#FUSES PWM4B5 //PWM4 output is multiplexed on RB5
#FUSES EXCLKC3 //TMR0/T5CKI external clock input is muliplexed wit h RC3
#use delay(clock=10000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN _C7,bits=8)
#FUSES HPOL_low //High‐Side Transistors Polarity is Active‐H igh (PWM 1,3,5 and 7)
#FUSES LPOL_low //Low‐Side Transistors Polarity is Active‐Lo w (PWM 0,2,4 and 6)
#locate PTCON0 = 0xF7F #bit PTMOD0 = PTCON0.0 #bit PTMOD1 = PTCON0.1
#bit PTCKPS0 = PTCON0.2 #bit PTCKPS1 = PTCON0.3 #bit PTOPS0 = PTCON0.4
#bit PTOPS1 = PTCON0.5 #bit PTOPS2 = PTCON0.6 #bit PTOPS3 = PTCON0.7
//===========================
#locate PTCON1 = 0xF7E
#bit PTEN = PTCON1.7 #locate DT CON = 0xF6D #bit DT0 = DTCON.0
#bit DT1 = DTCON.1 #bit DT2 = DTCON.2 #bit DT3 = DTCON.3
#bit DT4 = DTCON.4 #bit DT5 = DTCON.5 #bit DTPS0 = DTCON.6
#bit CTPS1 = DTCON.7
#locate PTMRL = 0xF7D #locate PTMRH = 0xF7C
#locate PTPERL = 0xF7B #locate PTPERH = 0xF7A
#locate PDC0L = 0xF79 #locate PDC0H = 0xF78
#locate PDC1L = 0xF77 #locate PDC 1H = 0xF76
#locate PDC2L = 0xF75 #locate PDC2H = 0xF74
#locate PDC3L = 0xF73 #locate PDC3H = 0xF72
//===========================
#locate SEVTCMPL = 0xF71#locate SEVTCMPH = 0 xF70
#locate PWMCON0 = 0xF6F
#bit PMOD0 = PWMCON0.0 #bit PMOD1 = PWMCON0.1 #bit PMOD2 = PWMCON0.2
#bit PMOD3 = PWMCON0.3 #bit PWMEN0 = PWMCON0.4 #bit PWMEN1 = PWMCON0.5
#bit PWMEN2 = PWMCON0.6
//=======================================
#locate PWMCON1 = 0xF6E
#locate OVDCOND = 0xF6B
#bit POVD0 = OVDCOND.0 #bit POVD1 = OVDCOND.1 #bit POVD2 = OVDCOND.2
#bit POVD3 = OVDCOND.3 #bit POVD4 = OVDCOND.4 #bit POVD5 = OVDCOND.5
#bit POVD6 = OVDCOND.6 #bit POVD7 = OVDCOND.7
#locate OVDCONS = 0xF6A
#bit POUT0 = OVDCONS.0 #bit POUT1 = OVDCONS.1 #bit POUT2 = OVDCONS.2
#bit POUT3 = OVDCONS.3 #bit POUT4 = OVDCONS.4 #bit POUT5 = OVDCONS.5
#bit POUT6 = OVDCONS.6 #bit POUT7 = OVDCONS.7
void main()
{
setup_adc_ports(sAN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL|ADC_TAD_MUL_2|A DC_WHEN_INT0|ADC_INT_EVERY_OTHER);
setup_spi(SPI_SS_DISABLED); setup_wdt(WDT_OFF); setup_timer_0(RT CC_INTERNAL);
setup_timer_1(T1_DISABLED); s etup_timer_2(T2_DISABLED,0,1);
PTCON0=0X1f; PTCON1=0X80; //***********************************
PWMCON0=0X47; PWMCON1=0X30;
//PWMCON0=0X40; PWMCON1=0X30;
PTPERL=0X1F; PTPERH=0X01; //***************************************
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐pwm0
PDC0L=0X4F; PDC0H=0X01;
//--------------------------------duty cycle pwm1
PDC1L=0X4F; PDC1H=0X01;
//--------------------------------duty cycle pwm2
PDC2L=0X4F; PDC2H=0X01;
robotpic
22-06-2010, 01:23 PM
co ai biet vao chi voi
robotpic
25-09-2010, 04:06 PM
ai do pót bai voi 4331 len cho moi nguoi tham khao voi.
tung don gian den phuc tap
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.