elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Ayuda con pic18f2550
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con pic18f2550  (Leído 4,774 veces)
Fdelilah

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con pic18f2550
« en: 10 Noviembre 2011, 06:43 am »

Hola a todas y todos, :) bueno soy nueva en el foro y en esto de la programación utilizando pics, nunca antes había trabajado con ellos la verdad y quisiera que me hicieran el enorme favor de revisarme y corregirme el siguiente código que he hecho. Mi proyecto consiste en calcular el tiempo que tarda digamos una bolita en llegar de un punto a otro, para eso utilizo sensores infrarrojos emisor-receptor; estos sensores están conectados a una compuerta OR y cuando pase la bolita a traves de uno de ellos, se envia una señal al pic y almacena un tiempo, utilizo el modulo ccp... además utilizare una conexion usb. 

El código es el siguiente:

#include <18F2550.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES XT                       //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#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 NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#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 NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL12                    //Divide By 12(48MHz oscillator input)
#FUSES CPUDIV4                  //System Clock by 4
#FUSES USBDIV                   //USB clock source comes from PLL divide by 2
#FUSES VREGEN                   //USB voltage regulator enabled
#device adc=8
#use delay(crystal=40000000,  clock=10000000)

#define USB_HID_DEVICE FALSE //deshabilitamos el uso de las directivas HID
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for IN bulk/interrupt transfers
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE 1 //size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE 3 //size to allocate for the rx endpoint 1 buffer

#include <pic18_usb.h>
#include "PicUSB.h" //Configuración del USB y los descriptores para este dispositivo
//#include <usb.h>
#include <usb.c>



// VARIABLES GLOBALES.
int16 tiempo1=0, tiempo2=0, tiempoFinal=0;
long des =0;
 
#int_ccp1
void ccp1_int()
{
  if(tiempo1==0)
     tiempo1 = CCP_1;
  else
     tiempo2 = CCP_1;
     
}     
 
#int_TIMER1
void TIMER1_isr(void)
{
  des++;
}
 
void main()
{
   long conteo;
   enable_interrupts(int_ccp1);       // Habilita la interrupción externa.
   enable_interrupts(global);        // Habilita en forma global las interrupciones.
  // ext_int_edge (0, H_TO_L);       // La interrupción se produce cuando se produce un flanco descendente.
   
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
   setup_ccp1(CCP_CAPTURE_RE);
 
   output_high(PIN_A1);//Encender led en el pin A1
   output_low(PIN_A0);
   
   usb_init(); //inicializamos el usb
   usb_task(); //habilitamos el periferico usb e interrupciones
   usb_wait_for_enumeration();  //esperamos hasta que el picusb sea configurado por el host si no se queda igual
   
   output_low(PIN_A1);//Encender led en el pin A1
   output_high(PIN_A0);
   
     
   while(1) {
 
    if(usb_enumerated())
    {
      if (usb_kbhit(1))
      {
        conteo=des*65536;
        tiempofinal=tiempo2-tiempo1+conteo;
        usb_put_packet(1, tiempoFinal, 2 ,USB_DTS_TOGGLE);
      }
         
    }
   
  }
}


Creanme que les agradecería muchísimo su ayuda! :D 






En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Necesito ayuda para crear un buen video uso AF y Flash.
Diseño Gráfico
XXXXXX 1 5,484 Último mensaje 11 Noviembre 2009, 00:17 am
por Sub_Cero
comunicacion rs232 con el pic18f2550
Electrónica
batsy29 0 3,621 Último mensaje 3 Abril 2010, 01:13 am
por batsy29
Ayuda por davor ayuda os ruego ayuda XD (SOLUCIONADO)
Hardware
XxRekcahlExX 6 10,545 Último mensaje 24 Mayo 2010, 00:56 am
por Aprendiz-Oscuro
sist lince indumentaria ayuda ayuda!!!!!!!!!! problemon que hice en le trabajo
Software
paola03 1 4,929 Último mensaje 11 Marzo 2011, 01:09 am
por charola42
Problema con USART en un PIC18F2550
Electrónica
Basu80 2 4,154 Último mensaje 2 Marzo 2013, 14:53 pm
por skapunky
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines