Tämä tavaraa on hankala ..

P

piersuk

Guest
Pahoillani siitä, että tällainen newbie ja joilla ei ole aavistustakaan, mitä olen tekemässä, mutta olen yrittänyt tehdä työtä asiat läpi.

Mitä olen yrittänyt tehdä on ajaa DC moottorin eri jännitteiden kanssa 2 sekunnin viive inbetween jokaisessa vaiheessa.Olen kokeillut, jonka alapuolella toivoin olisi kaksi askelta 3.8v ja 6V mutta valitettavasti ei.

Kaikki apu, jonka koodi olisi appreciated.Lisäksi haluaisin tietää, mitä ja missä lisätä jokaisen jännite askel pala koodia.

Tämä on minun koodi
Code:

LUETTELO P = PIC16F819, r = hex, f = INHX8MINCLUDE "p16f819.inc"__CONFIG 3909H;********* Ohjelman asianmukainen alkaa täällä ************************************ *Org 00H; palauttaa vektorin

Goto STARTOrg 010HSTART

; Nämä 3 linjat asettaa aikana ja sykkivä (39 kHz)

MOVLW 01FH

BSF STATUS, RP0

MOVWF PR2; Tehdä kaikissa satamissa tuotokset (vain B1 on käytössä)

CLRF TRISB

BCF STATUS, RP0; Configure kuin PWM-tilassa

MOVLW B'00001100 "

MOVWF CCP1CON; Arvo CCPRIL asetetaan velvollisuus ajan ja siksi jännite

; MOVLW 010H; antaa 2,52 V

MOVLW 018H; antaa 3,8 V

; MOVLW 022H; 6V

MOVWF CCPR1L; Käännä PWM annetun

BSF T2CON, TMR2ON; ja käynnistä ajastin käynnissä; Delay = 2 sekuntia

; Kello taajuus = 4 MHz; Todelliset delay = 2 sekuntia = 2000000 syklit

; Virhe = 0%cblock

d1

d2

d3

endcViive

; 1999996 syklit

movlw 0x11

movwf d1

movlw 0x5D

movwf d2

movlw 0x05

movwf d3

Delay_0

decfsz d1, f

goto 2dollari

decfsz d2, f

goto 2dollari

decfsz d3, f

goto Delay_0; 4 jaksoa (myös call); Nämä 3 linjat asettaa aikana ja sykkivä (39 kHz)

MOVLW 01FH

BSF STATUS, RP0

MOVWF PR2; Tehdä kaikissa satamissa tuotokset (vain B1 on käytössä)

CLRF TRISB

BCF STATUS, RP0; Configure kuin PWM-tilassa

MOVLW B'00001100 "

MOVWF CCP1CON; Arvo CCPRIL asetetaan velvollisuus ajan ja siksi jännite

; MOVLW 010H; antaa 2,52 V

; MOVLW 018H; antaa 3,8 V

MOVLW 022H; antaa 6.0v

MOVWF CCPR1L; Käännä PWM annetun

BSF T2CON, TMR2ON; ja käynnistä ajastin käynnissäFIN NOP

Goto FINEND
 
Voit tehdä viivyttää subroutine.
Sinun täytyy laittaa aloitusosoitteeksi tietojen muisti loppuun teidän cblock direktiiviä.
Käytä mplab sim, se on erittäin hyvä.Ota Trace kaikki Debugger asetukset ja käyttää logiikka-analysaattorin ikkunassa.
The PWM tuotos on Pin RB2.Code:LUETTELO P = PIC16F819, r = hex, f = INHX8MINCLUDE "p16f819.inc"__CONFIG 3909H;********* Ohjelman asianmukainen alkaa täällä ************************************ *cblock 0x20

d1

d2

d3

endcOrg 00H; palauttaa vektorin

Goto STARTOrg 010HSTART

; Nämä 3 linjat asettaa aikana ja sykkivä (39 kHz)

MOVLW 01FH

BSF STATUS, RP0

MOVWF PR2; Tehdä kaikissa satamissa tuotokset (vain B1 on käytössä)

CLRF TRISB

BCF STATUS, RP0; Configure kuin PWM-tilassa

MOVLW B'00001100 "

MOVWF CCP1CON

clrf CCPR1L

BSF T2CON, TMR2ON; ja käynnistä ajastin käynnissäLoop

; Arvo CCPRIL asetetaan velvollisuus ajan ja siksi jännite

MOVLW 010H; antaa 2,52 V

MOVWF CCPR1L

puhelun DelayMOVLW 018H; antaa 3,8 V

MOVWF CCPR1L

puhelun Delaygoto Loop; --- 2 sekunnin viiveViive 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

palataEND

 
Thanks - Olen täysin newbie tämän jutut,
eräs ystäväni kirjoitti PWM bittinen minulle ja minulla oli mentävä viivästymisestä.

Jos halusin lisätä kolmasosaa jännite jälkeen kahden toinen viive jos olisi, että sivusto on tarkistetussa koodin?

Kiitos

 
Vuonna silmukkaselaimessa bittinen
Code:Loop

; Arvo CCPRIL asetetaan velvollisuus ajan ja siksi jännite

MOVLW 010H; antaa 2,52 V

MOVWF CCPR1L

puhelun DelayMOVLW 018H; antaa 3,8 V

MOVWF CCPR1L

puhelun DelayMOVLW? H; uusi jännite tästä

MOVWF CCPR1L

puhelun Delaygoto Loop

 
Kiitos, minulla oli pelata ja yritti, että oli vain noin lähettää päivitys kun vastasi.

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

Kiitos ajastasi vaikka.

Seuraava askel on ajaa kaksi moottorit vuonna samalla tavalla, samaan aikaan (vaikka eri jännitteet eri aikoina).

Onko se mahdollista kanssa 16F819?

Loppujen lopuksi haluan ajaa kolme moottorit tällä tavoin uudelleen käyttämällä eri jännite, toisistaan riippumattomia ...

Tämä on hyvää kamaa.

Piers

 
PIC-819 on vain 1 PWM-moduuli ja 1 PWM-lähtö.
Ajaa 3 moottorit toisistaan riippumatta, joilla on erilaiset valtuudet sinun tulee käyttää mikro suunniteltu moottorien ohjaukseen.
Sinulle, että näkyvissä on Pic18 tai 16-bittinen dsPics.
The dsPic30f2010 on hyvä mikro moottoriajoneuvojen valvonnan ja halpaa riitä.
Voit ladata C-ilmaiseksi (Student-versio) ja siirtyä ohjelmasuunnittelun C. 2010 on todellinen 16-bittinen mikro, joka on suuri edistysaskel vallassa.
Koko uusi pallo peliin.

 
Thanks for the info ...

Koko uuden pallon peliin, tämä koko asia on kauden pallopelit

<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" />Ehkä I'll kiinni valvoa tämän jännitteen kanssa sarjakaapeli ensin.

En usko, se on liian kauan, ennen kuin olen lähettämistä niille tiedot.

Kiitos jälleen

Piers

 

Welcome to EDABoard.com

Sponsor

Back
Top