Autor Tema: tengo el siguiente codigo pero no me funciona en el proteus? ke me falta ?  (Leído 1446 veces)

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

Desconectado ingero

  • PIC10
  • *
  • Mensajes: 13
#include <18f2550.h>  //archivo de cabecera

#use delay(clock=48000000)     // el clock que tendremos a la entrada del CPU

///PROGRAMA
void main(void)
{
   set_tris_b(0xFE);            //portb como salida(RB0,las demas desactivadas)
   disable_interrupts(GLOBAL);      //todas las interrupciones desactivadas
   
   do{   
      output_low(PIN_B1);         //led off
      delay_ms(500);           
      output_high(PIN_B1);      //led on
      delay_ms(500);
   }while(TRUE);               //bucle infinito
}

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: tengo el siguiente codigo pero no me funciona en el proteus? ke me falta ?
« Respuesta #1 en: 13 de Marzo de 2011, 14:36:12 »
Hola ingero, a primera vista te faltan todos los fuses.  Esta instrucción:

Citar
#use delay(clock=48000000)

depende, además de algún fuse, del cristal que estés usando.

Saludos!

Edito: veo además que tienes esta configuración:

Citar
set_tris_b(0xFE);

Que significa que tienes a RB0 como salida y las demás como entradas y en tu código estás usando a RB1 como salida...
« Última modificación: 13 de Marzo de 2011, 14:58:49 por bmb »

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: tengo el siguiente codigo pero no me funciona en el proteus? ke me falta ?
« Respuesta #2 en: 13 de Marzo de 2011, 22:42:27 »
Supongo q quieres aprender a usar el 2550 porque quieres usar el USB, porque de otra manera no tiene mucho sentido usar un pic como ese para hacer parpadear un led... Bueno, todo vale para aprender.

Te faltan los famosos fuses, definir si vas a trabajar con un oscilador de cristal, y la frecuencia de este, para atravez del PLL y los Divisores llegar a la frecuencia de 48MHz q pretendes. Me parece q no puedes llegar a esa frecuencia con un oscilador interno, después activar o desactivar otras configuraciones, como la del MCLR, Power Up, Watchdog, Brownout, para saber q es cada uno de ellos, y además que hay algunos otros fuses mas te recomiendo leas la hoja de datos, coloca a buscar en tu lector de PDF "Configuration Word" o en la opcion Valid fuses del CCS también puedes ver un resumen.

En CCS existe una directiva llamada #use fast_io(x), si no la colocas no tiene mucho sentido usar los tris, ya q al no usarlo trabajas en el modo standard, donde el compilador se encarga de colocar los tris cuando manipules los puertos.

Las cosas estas no se aprenden tan rápido, lee un poco tanto por el foro y en la hoja de datos del micro, paciencia y buen humor!
« Última modificación: 13 de Marzo de 2011, 22:44:44 por Cryn »
.