Author Topic: PWM para 16F628A  (Read 921 times)

NCK

  • Guest
PWM para 16F628A
« on: November 03, 2008, 03:46:27 PM »
hi;Llorando o muy triste

Tengo algunas dificultades en program.That asamblea es que no sé cómo usar la función PWM en 16F628A PIC:?, Y quiero usar el OSC.So interna por favor dígame el código fuente: idea: para esta función. ¡Gracias!


blueroomelectronics

  • Guest
PWM para 16F628A
« Reply #1 on: November 03, 2008, 03:46:27 PM »
Mira en mi sitio web en la sección de proyectos para PWM velocidad del motor.PWM for 16f628a

osores_r

  • Guest
PWM para 16F628A
« Reply #2 on: November 03, 2008, 03:46:27 PM »
INCLUDE "modedefs.bas"

DEFINE OSC 20

CMCON =% 00000111 'para el PIC 16F628
Un VRCON = 0 '/ D de referencia de tensión con discapacidad
PR2 = 25 'Set PWM para aproximadamente 38 kHz
T2CON =% 00000101 'Timer2 ON 1:1 prescale

TX_SERIAL VAR PORTA.0
RX_SERIAL VAR PORTA.2

LED_OPER1 VAR PORTB.0
LED_OPER2 VAR PORTB.1
LED_OPER3 VAR PORTB.2

E_GIRO1 VAR PORTB.4
E_GIRO2 VAR PORTB.5

TRISA =% 11110100
TRISB =% 11110000

IDEN CON 0
PWM_DATO VAR BYTE
I VAR BYTE
VAR1 VAR BYTE

PARA I = 0 TO IDEN
ALTA LED_OPER1
PAUSE 300
BAJA LED_OPER1
PAUSE 300
NEXT i

INICIO:

SERIN2 RX_SERIAL, 84, INICIO, [WAIT ( "A"), DEC3 PWM_DATO]
CCP1CON = ((PWM_DATO &% 00000011) * 16) 12
Set CCPR1L = ((PWM_DATO) &% 1111100) / 4 'PWM Duty Cycle del 50%
TOGGLE LED_OPER2
SEROUT2 TX_SERIAL, 84, [ "A", DEC3 PWM_DATO, 10,13]
Ir a INICIOEste es el código para un pwm internel


hassan1980

  • Guest
PWM para 16F628A
« Reply #3 on: November 03, 2008, 03:46:27 PM »

osores_r escribió:

INCLUDE "modedefs.bas"DEFINE OSC 20CMCON =% 00000111 'para el PIC 16F628

Un VRCON = 0 '/ D de referencia de tensión con discapacidad

PR2 = 25 'Set PWM para aproximadamente 38 kHz

T2CON =% 00000101 'Timer2 ON 1:1 prescaleTX_SERIAL VAR PORTA.0

RX_SERIAL VAR PORTA.2LED_OPER1 VAR PORTB.0

LED_OPER2 VAR PORTB.1

LED_OPER3 VAR PORTB.2E_GIRO1 VAR PORTB.4

E_GIRO2 VAR PORTB.5TRISA =% 11110100

TRISB =% 11110000IDEN CON 0

PWM_DATO VAR BYTE

I VAR BYTE

VAR1 VAR BYTEPARA I = 0 TO IDEN

ALTA LED_OPER1

PAUSA 300

BAJA LED_OPER1

PAUSE 300

NEXT iINICIO:SERIN2 RX_SERIAL, 84, INICIO, [WAIT ( "A"), DEC3 PWM_DATO]

CCP1CON = ((PWM_DATO &% 00000011) * 16) 12

Set CCPR1L = ((PWM_DATO) &% 1111100) / 4 'PWM Duty Cycle del 50%

TOGGLE LED_OPER2

SEROUT2 TX_SERIAL, 84, [ "A", DEC3 PWM_DATO, 10,13]

Ir a INICIOEste es el código para un pwm internel