PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 04-01-2011, 09:11 AM   #1
boydtbk
Đệ tử 1 túi
 
Tham gia ngày: Jul 2010
Bài gửi: 11
:
[help] power control pwm module - pic18f4331

Mình đang có rắc rối với con PIC18F4331 về phần điều khiển động cơ dùng chức năng POWER CONTROL PWM MODULE.
Mình có đoạn code sau, ko hiểu sao lại ko chạy, có cao thủ nào biết xin chỉ giáo với, thanks nhiều!

#define OSCILLATOR d'20000000'
#define PWM_TIMER_PRESCALE d'01'
#define PWM_FREQUENCY d'16000'

PTPER_VALUE = (OSCILLATOR/(4*PWM_FREQUENCY*PWM_TIMER_PRESCALE))-1


;================================================= ====
;=============== PCPWM CONFIGURATION ===================
;================================================= ====

CLRF TRISB ; Port B is output
CLRF LATB
CLRF PORTB

;PCPWM outputs initialized in independent mode.
;PWM<0:5> are enabled
CLRF PTMRH
CLRF PTMRL
CLRF PDC0L ;Clear all PWM duty cycle registers
CLRF PDC1L
CLRF PDC2L
CLRF PDC3L
CLRF PDC0H
CLRF PDC1H
CLRF PDC2H
CLRF PDC3H

MOVLW b'00000000' ;PWM timer is in free running mode(Edge aligned) with Fosc/4 input clock
MOVWF PTCON0 ; Postscale = 1:1 , Prescale = 1:1

MOVLW b'10000000' ; PWM Time base is ON
MOVWF PTCON1 ; PWM Time base count UP

MOVLW LOW(PTPER_VALUE) ; 20KHz = 0xFA ;20KHz of PWM frequency
MOVWF PTPERL ;16KHz = 0x137
;12KHz = 0x1A0
MOVLW HIGH(PTPER_VALUE)
MOVWF PTPERH

MOVLW b'01001111' ; PWM0 to PWM5 Enable
MOVWF PWMCON0 ; Independent mode

MOVLW b'00000001' ; Output overrides via the OVDCON register are synchronized to the PWM time base
MOVWF PWMCON1 ; 1:1 Postscale
; A Special Event Trigger will occur when the PWM time base is counting upwards
; Updates from Duty Cycle and Period Buffer registers are enabled

MOVLW b'00000000' ;No dead time inserted
MOVWF DTCON

MOVLW b'00000000' ;PWM<0:5> PWM Duty cycle on overide
MOVWF OVDCOND

MOVLW b'00111000' ; All PWMs = 0 on init
MOVWF OVDCONS

MOVLW b'10110011' ;FaultA = Over current,cycle by cycle mode
MOVWF FLTCONFIG ;FaultbB = Over voltage,cycle by cycle mode

MOVLW 0x00 ;Special event not used
MOVWF SEVTCMPL
MOVLW 0x00
MOVWF SEVTCMPH

Nhân tiện cho hỏi luôn, thanh ghi LAT như LATA. LATB,.. để làm gì ? Mình mới chuyển qua PIC18 nên chưa rõ lắm
boydtbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 02:36 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam