Ang mga bagay-bagay ay may daya ..

P

piersuk

Guest
Paumanhin para sa pagiging tulad ng isang Newbie at walang ideya kung ano ang ginagawa ko, ngunit ay sinusubukan ko na magtrabaho sa pamamagitan ng mga bagay-bagay.

Ano ay sinusubukan ko na gawin ay ang pagmamaneho ng DC motor sa
iba't ibang voltages na may 2 ikalawang pagkaantala inbetween bawat hakbang.Ako may tried ang mga inaasam ko sa ibaba na kung saan ay dalawang hakbang 3.8v at 6v ngunit alas no.

Anumang tulong sa ang code ay appreciated.Sa karagdagan Gusto kong malaman kung ano at kung saan na idagdag ang bawat boltahe hakbang na piraso ng code.

Ito ang aking code
Code:

LISTAHAN P = PIC16F819, r = hex, f = INHX8MIsama "p16f819.inc"__CONFIG 3909H;********* Programa ng tamang magsisimula dito ************************************ *Org 00H; reset vector

Goto STARTOrg 010HSTART

; Mga 3 linya itakda ang panahon ng pulsing (39 KHz)

MOVLW 01FH

BSF KALAGAYAN, RP0

MOVWF PR2; Gumawa ng lahat ng port outputs (lamang B1 ay ginagamit)

CLRF TRISB

BCF KALAGAYAN, RP0; Configure bilang PWM mode

MOVLW B'00001100 '

MOVWF CCP1CON; Ang halaga ng CCPRIL set ang duty cycle at sa gayon ang boltahe

; MOVLW 010H; nagbibigay 2.52 V

MOVLW 018H; nagbibigay 3.8 V

; MOVLW 022H; 6v

MOVWF CCPR1L; Patayin ang PWM sa

BSF T2CON, TMR2ON; at simulan ang pagpapatakbo ng timer; Delay = 2 seconds

; Clock dalas = 4 MHz; Tunay na delay = 2 seconds = 2000000 cycles

; Error = 0%cblock

d1

d2

d3

endcAntala

; 1999996 cycles

movlw 0x11

movwf d1

movlw 0x5D

movwf d2

movlw 0x05

movwf d3

Delay_0

decfsz d1, f

Goto $ 2

decfsz d2, f

Goto $ 2

decfsz d3, f

Goto Delay_0; 4 cycles (kabilang ang mga tawag); Mga 3 linya itakda ang panahon ng pulsing (39 KHz)

MOVLW 01FH

BSF KALAGAYAN, RP0

MOVWF PR2; Gumawa ng lahat ng port outputs (lamang B1 ay ginagamit)

CLRF TRISB

BCF KALAGAYAN, RP0; Configure bilang PWM mode

MOVLW B'00001100 '

MOVWF CCP1CON; Ang halaga ng CCPRIL set ang duty cycle at sa gayon ang boltahe

; MOVLW 010H; nagbibigay 2.52 V

; MOVLW 018H; nagbibigay 3.8 V

MOVLW 022H; nagbibigay 6.0v

MOVWF CCPR1L; Patayin ang PWM sa

BSF T2CON, TMR2ON; at simulan ang pagpapatakbo ng timerAleta NOP

Goto palikpikEND
 
Maaari kang gumawa ng mga pagkaantala ng isang subroutine.
Kailangan ninyong maglagay ng isang panimulang address sa data memory sa dulo ng iyong cblock nagtuturo.
Gamitin mplab SIM, ito ay tunay mabuti.Paganahin ang bakasin lahat sa mga setting ng Debugger at gamitin ang lohika analyzer window.
Ang pwm output ay sa Pin RB2.Code:LISTAHAN P = PIC16F819, r = hex, f = INHX8MIsama "p16f819.inc"__CONFIG 3909H;********* Programa ng tamang magsisimula dito ************************************ *cblock 0x20

d1

d2

d3

endcOrg 00H; reset vector

Goto STARTOrg 010HSTART

; Mga 3 linya itakda ang panahon ng pulsing (39 KHz)

MOVLW 01FH

BSF KALAGAYAN, RP0

MOVWF PR2; Gumawa ng lahat ng port outputs (lamang B1 ay ginagamit)

CLRF TRISB

BCF KALAGAYAN, RP0; Configure bilang PWM mode

MOVLW B'00001100 '

MOVWF CCP1CON

clrf CCPR1L

BSF T2CON, TMR2ON; at simulan ang pagpapatakbo ng timerUmikot

; Ang halaga ng CCPRIL set ang duty cycle at sa gayon ang boltahe

MOVLW 010H; nagbibigay 2.52 V

MOVWF CCPR1L

tumawag DelayMOVLW 018H; nagbibigay 3.8 V

MOVWF CCPR1L

tumawag DelayGoto Umikot; --- 2 ikalawang pagkaantalaDelay movlw 0xff

movwf d1

movlw 0xff

movwf d2

movlw 0x0b

movwf d3Delay_0 decfsz d1, f

Goto Delay_0

decfsz d2, f

Goto Delay_0

decfsz d3, f

Goto Delay_0

bumalikEND

 
Thanks - ako kumpleto Newbie sa mga bagay-bagay na ito, ang isang kaibigan wrote ang PWM kaunti para sa akin at ako ay may isang pumunta sa pagka-antala.

Kung gusto ko na magdagdag ng isang ikatlong boltahe pagkatapos ng dalawang ikalawang pagkaantala na kung saan ay na site sa ang binagong code?

Salamat

 
Sa loop bit
Code:Umikot

; Ang halaga ng CCPRIL set ang duty cycle at sa gayon ang boltahe

MOVLW 010H; nagbibigay 2.52 V

MOVWF CCPR1L

tumawag DelayMOVLW 018H; nagbibigay 3.8 V

MOVWF CCPR1L

tumawag DelayMOVLW?? H; bagong boltahe dito

MOVWF CCPR1L

tumawag DelayGoto Umikot

 
Thanks, ako ay may isang play at tried na, ay halos mag-post ng isang pag-update kapag kayo ay tumugon.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />

Salamat po sa paglaan ng oras kahit na.

Susunod na hakbang ay ang drive dalawang motors sa parehong paraan, sa parehong oras (kahit na may iba't-ibang voltages sa
iba't ibang beses).

Ay na maaari sa pamamagitan ng 16F819?

Sa huli gusto kong nag-mamaneho tatlong motors sa paraang ito, muli gamit ang iba't-ibang mga voltages, independiyenteng ng bawat isa ...

Ito ay magagandang bagay-bagay.

Piers

 
Ang pic 819 lamang ay 1 pwm module at 1 pwm output.
Upang himukin ang 3 motors nagsasarili ng bawat isa na may iba't-ibang kapangyarihan kailangan mong gumamit ng isang micro-disenyo para sa mga motor control.
Ikaw ay ang pagtingin sa Pic18 o ang 16-bit dsPics.
Ang dsPic30f2010 ay isang mabuting micro para sa motor control, at murang sapat.
Maaari mong i-download ang C tagatala ng libre (Student bersyon) at lumipat sa programming sa C. Ang 2010 ay isang tunay na 16-bit micro, isang quantum tumalon sa kapangyarihan.
Ang isang buong bagong bola laro.

 
Thanks for the info ...

Ang isang buong bagong bola laro, ang buong bagay ay isang panahon ng mga bola sa games

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />Siguro I'll stick sa kontrolado ito boltahe na may isang serial koneksyon sa unang.

I-agam-agam ito ay masyadong mahaba bago ako ng post para sa mga detalye.

Salamat uli

Piers

 

Welcome to EDABoard.com

Sponsor

Back
Top