TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fastyx en 06 de Enero de 2006, 18:12:00
-
Amigos: alguien podria decirme porque en proteus no parpadea el led en rc5
el pwm anda fantastico(0 a 5 volts aplicados a ano,salida por pin 13 del pwm)
// CONFIGURACIÓN
#include <16F873A.h>
#device adc=8
#fuses NOWDT, hs, PUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG
#use delay(clock=10000000)
#ZERO_RAM
// VARIABLES
// definiciones básicas
#byte porta= 0x05
#byte portb= 0x06
#byte portc= 0x07
#byte trisa= 0x85
#byte trisb= 0x86
#byte trisc= 0x87
////////////////////////////////////////////////////////////////////////////////
#bit led= 0x07.5//aca define al bit del led con la direccion de memoria 0x07
// del puerto c y despues del punto indica que es el pin 5!
//////////////////////////////////////////////////////////////////////////////////////////////
// FUNCIONES
main()
{
setup_adc_ports (AN0);
setup_adc (ADC_CLOCK_DIV_16);
setup_ccp1 (CCP_PWM);
while (true)
{
led= 1; delay_ms(1000);led= 0; delay_ms(500);
set_pwm1_duty (read_adc ());
}
}
-
Prueba a poner esto trisc=0 antes de entrar al bucle.
-
Yo pondría para lo del LED set_tris_c(0x00)
Para lo del pwm, ¿no programas el TMR2 cargando el PR2? Creo que faltaría setup_timer_2(.....)
Un saludo
-
perfecto: funciono lo del led
en cuanto a colocar el timer 2 ,me parece que si estoy tomando el duty en funcion de una entrada analogica que inyecto en an0,no haria falta.
es esto correcto?
-
Creo que no.
El pwm siempre lo tienes que usar para un determinado periodo (frecuencia) fijo, y a partir de este periodo cargar Dutys variables.
Ejemplos:
setup_timer_2(T2_DIV_BY_16,124,1); //f=500Hz (T=2ms)
set_pwm1_duty(62); // Duty=1ms
setup_timer_2(T2_DIV_BY_16,30,1); //f=2kHz (T=0,5ms)
set_pwm1_duty(16); // Duty=250us
Un saludo
-
entiendo.
lo que me confundio fue que fui comentando partes del programa en proteus y me fijaba que hacia el simulador.Cuando saqué la directiva del timer 2, siguio andando.
pienso que es probable que el compilador elija alguna frecuencia de trabajo por defecto.
gracias por la ayuda!!