Autor Tema: NO ANDA EL PWM(UFF)  (Leído 1530 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
NO ANDA EL PWM(UFF)
« en: 05 de Enero de 2006, 14:20:00 »
#include "D:Documents and Settingsclaudio grinman.CDB-UZRE64WZDVIEscritorioprogramacionpwmmiopwmadc2.h"
#include <16F877A.h>
#device adc=8
#use delay(clock=4000000)
#fuses NOWDT,XT, NOPUT, NOPROTECT, BROWNOUT, LVP, NOCPD, NOWRT, NODEBUG

void ini()
{

   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
   setup_timer_2(T2_DIV_BY_4,24,1);  //configura timer 2 con su prescaler
   setup_ccp1(CCP_PWM);              // Configura CCP1 como  PWM
   setup_port_a(ALL_ANALOG);
}

void main(){
 while( TRUE ) { //funcion para que lea del adc y lo ponga como argumento
                  //en pmw_duty()

set_pwm1_duty (read_adc ());// coloca en el duty lo que lea el adc
  }
}

inyecto en la pata 2 del pic (an0)tension entre 0 y 5 volts,pretendo leer en la 17 (rc2/ccp1).no pasa nada(pero tengo oscilacion en las patas del cristal)
desde ya gracias!!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: NO ANDA EL PWM(UFF)
« Respuesta #1 en: 06 de Enero de 2006, 01:35:00 »
Veo que has metido todas las funciones de inicialización en una función llamada ini(), lo cual queda muy limpio, ... pero tendrás que llamarla desde el main() jajajaMuchas risas

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
RE: NO ANDA EL PWM(UFF)
« Respuesta #2 en: 06 de Enero de 2006, 09:19:00 »
la verdad no lo hice de limpio sino de burro jajajajaja

otra pregunta a ver si puedo fijar conceptos:

si por ejemplo el pic tiene que encender y apagar un led como testigo de que esta vivo,(llamese funcion x) y aparte leer una entrada analogica y sacar un pwm(llamese funcion pwm),como se ordenan las funciones en relacion al main()

otra:todas las entradas de datos en alguna pata del pic necesitan solicitud de interrupcion?

desde ya gracias!!! son unos capos!!

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: NO ANDA EL PWM(UFF)
« Respuesta #3 en: 06 de Enero de 2006, 12:00:00 »
Buenas.

Casi siempre en todas las aplicaciones, en la función main hay un bucle infinito:

void main(){

while(1){ // bucle infinito
  x();//Parpadea el LED
  pwm(); // actualiza el PWM
}

}

No todas la entradas necesitan de interrupción. Sólo la necesitan aquellas entradas que necesiten una atención inmediata del PIC


 

anything