Este material es difícil ..

P

piersuk

Guest
Lo siento por ser un novato y no tener idea de lo que estoy haciendo, pero estoy tratando de trabajar las cosas.

Lo que estoy tratando de hacer es conducir un motor de corriente en diferentes voltajes Inbetween con un retardo de 2 segundos de cada paso.He probado el siguiente que me esperaba que fuera a dos pasos 3.8V y 6V, pero por desgracia no.

Cualquier ayuda con el código sería apreciada.Además, me gustaría saber qué y dónde agregar el paso de tensión cada pieza de código.

Este es mi código de
Código:

LIST P = PIC16F819, r = hex, f = INHX8MINCLUDE "p16f819.inc"__CONFIG 3909H;********* Programa adecuado starts here ************************************ *ORG 00H; vector de reset

Goto StartORG 010HINICIO

; Estas 3 líneas de establecer el periodo de la pulsación kHz (39)

MOVLW 01FH

BSF STATUS, RP0

MOVWF PR2; Hacer que todas las salidas de los puertos (sólo se utiliza B1)

CLRF TRISB

BCF STATUS, RP0; Configurar el modo PWM

MOVLW B'00001100 '

MOVWF CCP1CON, El valor de CCPRIL establece el ciclo de trabajo y por lo tanto la tensión de

; MOVLW 010H; da 2,52 V

MOVLW 018H; da 3,8 V

; MOVLW 022H; 6v

MOVWF CCPR1L; A su vez en el PWM

BSF T2CON, TMR2ON, y inicia el temporizador; = 2 segundos de retardo

; Frecuencia de reloj = 4 MHz; Un retraso real = 2 segundos = 2000000 ciclos

; De error = 0%CBLOCK

d1

d2

D3

endcRetraso

; 1999996 ciclos

movlw 0x11

movwf d1

movlw 0x5d

movwf d2

movlw 0x05

movwf d3

Delay_0

decfsz d1, f

Ir a $ 2

decfsz d2, f

Ir a $ 2

decfsz d3, f

Delay_0 goto, 4 ciclos (incluido el); Estas 3 líneas de establecer el periodo de la pulsación kHz (39)

MOVLW 01FH

BSF STATUS, RP0

MOVWF PR2; Hacer que todas las salidas de los puertos (sólo se utiliza B1)

CLRF TRISB

BCF STATUS, RP0; Configurar el modo PWM

MOVLW B'00001100 '

MOVWF CCP1CON, El valor de CCPRIL establece el ciclo de trabajo y por lo tanto la tensión de

; MOVLW 010H; da 2,52 V

; MOVLW 018H; da 3,8 V

MOVLW 022H; da 6.0V

MOVWF CCPR1L; A su vez en el PWM

BSF T2CON, TMR2ON, y inicia el temporizadorFIN NOP

GOTO FINFIN
 
Usted podría hacer que el retraso de una subrutina.
Necesitas poner una dirección a partir de datos de la memoria en la final de su directiva CBLOCK.
SIM MPLAB uso, es muy bueno.Habilitar el seguimiento de todos en la configuración del depurador y el uso de la ventana del analizador lógico.
La salida PWM es la patilla RB2.Código:LIST P = PIC16F819, r = hex, f = INHX8MINCLUDE "p16f819.inc"__CONFIG 3909H;********* Programa adecuado starts here ************************************ *0x20 CBLOCK

d1

d2

D3

endcORG 00H; vector de reset

Goto StartORG 010HINICIO

; Estas 3 líneas de establecer el periodo de la pulsación kHz (39)

MOVLW 01FH

BSF STATUS, RP0

MOVWF PR2; Hacer que todas las salidas de los puertos (sólo se utiliza B1)

CLRF TRISB

BCF STATUS, RP0; Configurar el modo PWM

MOVLW B'00001100 '

MOVWF CCP1CON

CCPR1L clrf

BSF T2CON, TMR2ON, y inicia el temporizadorLoop

, El valor de CCPRIL establece el ciclo de trabajo y por lo tanto la tensión de

MOVLW 010H; da 2,52 V

MOVWF CCPR1L

llamada de retardoMOVLW 018H; da 3,8 V

MOVWF CCPR1L

llamada de retardoLoop goto; --- Demora 2 segundosDelay movlw 0xff

movwf d1

movlw 0xff

movwf d2

movlw 0x0b

movwf d3Delay_0 decfsz d1, f

Delay_0 goto

decfsz d2, f

Delay_0 goto

decfsz d3, f

Delay_0 goto

volverFIN

 
Gracias - Yo soy novato completo con estas cosas, un amigo escribió el bit PWM para mí y tenía un ir en la demora.

Si yo quisiera añadir una tensión tercero después de un retraso de dos segundos en ese sitio sería en el Código revisado?

Gracias

 
En el poco bucle
Código:Loop

, El valor de CCPRIL establece el ciclo de trabajo y por lo tanto la tensión de

MOVLW 010H; da 2,52 V

MOVWF CCPR1L

llamada de retardoMOVLW 018H; da 3,8 V

MOVWF CCPR1L

llamada de retardoMOVLW? H; tensión de nuevo aquí

MOVWF CCPR1L

llamada de retardoLoop goto

 
Gracias, yo tenía una obra de teatro y trató de que, estaba a punto de publicar una actualización cuando respondió.

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

Gracias por tomarse el tiempo bien.

El siguiente paso es la unidad de dos motores de la misma manera, al mismo tiempo (aunque con voltajes diferentes en momentos diferentes).

¿Es eso posible con el 16F819?

En última instancia quiero unidades de tres motores de esta manera, de nuevo con tensiones diferentes, independientes unos de otros ...

Esto es lo bueno.

Piers

 
El Pic 819 sólo tiene 1 módulo PWM y 1 salida PWM.
Para la unidad 3 motores de forma independiente el uno del otro con diferentes poderes tendrá que utilizar un micro diseñado para el control motor.
Se le busca en el PIC18 o el 16-dsPics bits.
El dsPic30f2010 es lo suficientemente bueno para el control de micro motor, y barato.
Usted puede descargar el compilador de C de la versión libre (estudiante) y pasar a la programación en C. El 2010 es un verdadero 16 bits de la micro, un salto cuántico en el poder.
Un juego totalmente nuevo.

 
Gracias por la info ...

Un nuevo juego, todo esto es una temporada de juegos de pelota

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Muy feliz" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Muy feliz" border="0" />Tal vez me quedo con el control de esta tensión con una conexión en serie en primer lugar.

Dudo que pase mucho tiempo antes de que me anuncio para los detalles.

Gracias de nuevo

Piers

 

Welcome to EDABoard.com

Sponsor

Back
Top