TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jealr en 01 de Diciembre de 2009, 20:26:21
-
Hola a todos
Tengo un problema para hacer el pwm del pic18f1320 no me muestra nada en la salida "RB3" :(, les muestro el codigo (hecho en pic c) para ver si alguien me corrige en mi error.
#include <18F1320.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES EC //External
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(clock=40000000)
void main(){
setup_timer_2(T2_DIV_BY_4,124,4); //Habilitar timer 2
setup_ccp1(CCP_PWM,CCP_1);
//set_pwm1_duty(250);
while(true){
set_pwm1_duty(250);
}
}
en la parte de "setup_ccp1" en varios ejemplos que he encotrado solo tienen setup_ccp1(CCP_PWM) pero a mi me marca error a la hora de compilar me marca este error --> Line 59(19,20): Expect comma.
de antemano gracias!
-
Hola.
Ese micro si soporta 40MHz directos?
La función setup_ccp1() no acepta mas de un parámetro y CCP_1 no es una opción de configuración, según el .h del micro que usas.
Saludos
-
Lo que pasa que el módulo es ECCP, hay que configurar el brigde y otras cositas. Como no tengo idea de como se hace :oops: Y hay que ponerse a leer el datasheet :mrgreen: aviso por si alguien tiene experiencia. ;-)
Saludos!
-
efectivamente "ccp_1" no es un parametro de configuracion :oops: pero aun asi no he logrado solucionar el problema o mas bien no he logrado la configuracion correcta para este pic :(, viendo el manual de C me encontre con esto
setup_ccp1 (mode, pwm)
Donde
mode is a constant. Valid constants are in the devices .h file and are as
follows:
Disable the CCP: CCP_OFF
Set CCP to capture mode:
CCP_CAPTURE_FE Capture on falling edge
CCP_CAPTURE_RE Capture on rising edge
CCP_CAPTURE_DIV_4 Capture after 4 pulses
CCP_CAPTURE_DIV_16 Capture after 16 pulses
Set CCP to compare mode:
CCP_COMPARE_SET_ON_MATCH Output high on compare
CCP_COMPARE_CLR_ON_MATCH Output low on compare
CCP_COMPARE_INT interrupt on compare
CCP_COMPARE_RESET_TIMER Reset timer on compare
Set CCP to PWM mode:
CCP_PWM Enable Pulse Width Modulator
pwm parameter is an optional parameter for chips that includes ECCP module.
This parameter allows setting the shutdown time. The value may be 0-255.
CCP_PWM_H_H
CCP_PWM_H_L
CCP_PWM_L_H
CCP_PWM_L_L
CCP_PWM_FULL_BRIDGE
CCP_PWM_FULL_BRIDGE_REV
CCP_PWM_HALF_BRIDGE
Built-in-Functions
237
CCP_SHUTDOWN_ON_COMP1 shutdown on Comparator 1
change
CCP_SHUTDOWN_ON_COMP2
shutdown on Comparator 2
change
CCP_SHUTDOWN_ON_COMP
Either Comp. 1 or 2 change
CCP_SHUTDOWN_ON_INT0
VIL on INT pin
CCP_SHUTDOWN_ON_COMP1_INT0 VIL on INT pin or
Comparator 1 change
CCP_SHUTDOWN_ON_COMP2_INT0 VIL on INT pin or
Comparator 2 change
CCP_SHUTDOWN_ON_COMP_INT0
VIL on INT pin or
Comparator 1 or 2 change
CCP_SHUTDOWN_AC_L Drive pins A nad C high
CCP_SHUTDOWN_AC_H Drive pins A nad C low
CCP_SHUTDOWN_AC_F Drive pins A nad C tri-state
CCP_SHUTDOWN_BD_L Drive pins B nad D high
CCP_SHUTDOWN_BD_H Drive pins B nad D low
CCP_SHUTDOWN_BD_F Drive pins B nad D tri-state
CCP_SHUTDOWN_RESTART the device restart after a
shutdown event
CCP_DELAY use the dead-band delay
-
Habría que revisar bien el datasheet para ver cual de las opciones PWM son las que necesitas, tal como lo dice el señor Suky.