TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: kicho en 12 de Noviembre de 2008, 09:16:44

Título: Temporizar Led intermitente cada 2 segundos con CSS en pic18f2550
Publicado por: kicho en 12 de Noviembre de 2008, 09:16:44

Buenas a todos esta es la primera vez que posteo en este foro, mi problema es que estoy ya casi una sem,ana peleando con la temporizacion de mi pic y no ay manera a que parpadee cada sos segundos, midu da entre tantas otras ya que estoy empezando a programar en c los pic es que si lo le fijo una velocidad de relog y le digo k tarde 2 segundos por que no se autoajusta, cambiando la velocidad el reloj logro disminuirla pero no tengo del todo claro lo que estoy aciendo, por lo que os dejo mi codigo fuente a ver si sabeis cual es mi error. Un saludo y muchas gracias a todos

Archivo Main.h

#include <18F2550.h>
#device adc=8
#device icd=true

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES XT                       //Crystal osc <= 4mhz
#FUSES NOPROTECT                //Code not protected from reading
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES BORV20                   //Brownout reset at 2.0V
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES LVP                      //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES PBADEN                   //PORTB pins are configured as analog input channels on RESET
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOCPB                    //No Boot Block code protection
#FUSES MCLR                     //Master Clear pin enabled
#FUSES LPT1OSC                  //Timer1 configured for low-power operation
#FUSES XINST                    //Extended set extension and Indexed Addressing mode enabled


#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

Archivo main.c

#include "C:\Documents and Settings\Pedro Francisco\Desktop\pruevas\main.h"

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab

   // TODO: USER CODE!!

       set_tris_b(0x00);                //portb como salida(RB0,las demas desactivadas) 
      disable_interrupts(GLOBAL);        //todas las interrupciones desactivadas 
       
      do{
        output_high(PIN_B2);        //Led on 
          delay_ms(2000);     
          output_low(PIN_B2);            //Led off 
          delay_ms(2000);                 
           
      }while(true) ;                 //bucle infinito 
   }



Título: Re: Temporizar Led intermitente cada 2 segundos con CSS en pic18f2550
Publicado por: micro_cadaver en 12 de Noviembre de 2008, 15:27:51
en que parte de tu codigo cambias la velocidad del reloj?
Título: Re: Temporizar Led intermitente cada 2 segundos con CSS en pic18f2550
Publicado por: MLO__ en 12 de Noviembre de 2008, 16:39:59
Hola.

Debes tener en cuenta que el 2550 posee un modulo para manejo de USB, por lo que debes configurar los #fuses para que todo corra bien.

Prueba con los siguientes:
Código: [Seleccionar]
#fuses XT,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN,FCMEN
Saludos
Título: Re: Temporizar Led intermitente cada 2 segundos con CSS en pic18f2550
Publicado por: PalitroqueZ en 12 de Noviembre de 2008, 18:44:34
una pregunta, ¿ves que los leds parpadeen?

hay unos cuantos pines del portb que son entrada analógica por defecto, debes fijarte que al entrar al bucle quede como salida.



Título: Re: Temporizar Led intermitente cada 2 segundos con CSS en pic18f2550
Publicado por: kicho en 16 de Noviembre de 2008, 16:43:16
Ya lo solucione perdon el tiempo en contestar era algo tan tonto como en el main le faltaba la siguiente linea ya que la temporizacion a de estar diplicada en el .h y en el .c

la lineas es:
setup_oscillator(OSC_4MHZ|OSC_INTRC|OSC_31250|OSC_PLL_OFF);

Ahora estoy con las lcs pero no ay manera, seguire mirando post. Gracias