Autor Tema: bits de configuracion pic 18f2520  (Leído 2099 veces)

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

Desconectado KARyKAR

  • PIC10
  • *
  • Mensajes: 4
bits de configuracion pic 18f2520
« en: 30 de Abril de 2021, 00:50:40 »
Buenas noches compañeros del foro, estoy comenzando con la programación del pic18f2520, realice un ejercicio modificando un ejemplo que encontré en la red pero el caso es que este programa no me muestra nada en la pantalla lcd por bus I2c ni los leds reaccionan.
por favor me pueden indicar que me hace falta en la configuración de los bits y registros para que el pic me funcione muchas gracias.



//************************************************************************************

//************************************************************************************
#include <18F2520.h>
#fuses NOMCLR,NOWDT,INTRC,PUT,NOBROWNOUT,NOLVP
#use delay(internal=8M)
#use i2c(Master,Fast=100000, sda=PIN_C4, scl=PIN_C3,force_sw) 
#include "i2c_Flex_LCD.c" 

#define PORTA4 PIN_A4
#define PORTA5 PIN_A5

#define PORTB4 PIN_B4
#define PORTB5 PIN_B5


int leer1 = 0;

void main()
{
SET_TRIS_A(0B00000000);
SET_TRIS_B(0B00111111);

int i=0;
lcd_init(0x4E,16,2);
lcd_backlight_led(ON); //Enciende la luz de Fondo
 
 while (TRUE) {
 
 //PORT_A = 0;
 //PORT_B = 0;
 
 lcd_clear();  //Limpia el LCD

   
   
//*****************************************************************************
     lcd_backlight_led(ON);
   // Backspace over 2nd line.
 
   printf(lcd_putc,   "    PUSH BOTON ");
   delay_ms(3000);
   leer1 = (input_state(PIN_A4));

   if((input(PIN_B4)== 1)&&(leer1 == 0))   
        { 
            lcd_gotoxy(2, 2);
            printf(lcd_putc, "\BOTON  ON   ");
           
            delay_ms(1000);
            output_high(PIN_A4);
           
         if((input(PIN_B4)== 1)&&(leer1 == 1))
         {
            printf(lcd_putc, "\BOTON  OFF     ");
            delay_ms(1000);
       
            output_low(PIN_A4);
            delay_ms(100);
         }
          lcd_backlight_led(OFF);
         
         
         
           output_high(PIN_A5);
            delay_ms(300);
            output_low(PIN_A5);
            delay_ms(300);
            output_high(PIN_A5);
            delay_ms(300);
            output_low(PIN_A5);
   }   
 }
}

Desconectado Alcaparrones

  • PIC10
  • *
  • Mensajes: 17
Re:bits de configuracion pic 18f2520
« Respuesta #1 en: 23 de Junio de 2021, 13:32:45 »
Buenas

Me he decidido a echar a andar este código, y por la mismísima tierra donde crecen los alcaparrones que lo he conseguido  ((:-))

El código en sí funciona en proteus, los fuses o la configuración inicial no impiden que el pic funcione en principio. He creado una simulación partiendo de otra que he conseguido por internet, interpretando lo que querías hacer.

Entrando en el código, he visto que usas i2c por software. Lo ideal es que lo configures por defecto, y que use el inluido en el pic, ya que este 18f2520 lo lleva por hardware:
Código: [Seleccionar]
#use i2c(Master,Fast=100000, sda=PIN_C4, scl=PIN_C3)
Y por otro lado, está este bloque en main():
Código: [Seleccionar]
   leer1 = (input_state(PIN_A4));

   if((input(PIN_B4)== 1)&&(leer1 == 0))   
        {
            lcd_gotoxy(2, 2);
            printf(lcd_putc, "\BOTON  ON   ");
           
            delay_ms(1000);
            output_high(PIN_A4);
           
         if((input(PIN_B4)== 1)&&(leer1 == 1))
         {
            printf(lcd_putc, "\BOTON  OFF     ");
            delay_ms(1000);
       
            output_low(PIN_A4);
            delay_ms(100);
         }
          lcd_backlight_led(OFF);
         
         
         
           output_high(PIN_A5);
            delay_ms(300);
            output_low(PIN_A5);
            delay_ms(300);
            output_high(PIN_A5);
            delay_ms(300);
            output_low(PIN_A5);
   }   
 }

He asumido que en PIN_B4 hay un botón, y en PIN_A4 un interruptor. Pues bien, si pulsas el botón y el interruptor está apagado aparece en el lcd "boton on", pero si pulsas el botón y el interruptor está encendido nunca aparecerá "boton off", ¡porque ese código está dentro del anterior!. Ahí entraríamos ya en física cuántica y no llego a tanto.

Y nada más. Ten paciencia con esto, es dificil al principio pero muy satisfactorio.

Suerte.



Desconectado allennet

  • PIC16
  • ***
  • Mensajes: 112
Re:bits de configuracion pic 18f2520
« Respuesta #2 en: 09 de Julio de 2021, 15:00:36 »
hola, los bit de configuracion de ese pic hay mucha informacion por ser un pic antiguo y comun

con un cristal de 20Mhz y ceramicos de 22pF a tierra es
Código: [Seleccionar]
#fuses HSPLL, NOWDT, NOPROTECT, NODEBUG, USBDIV, PLL5, CPUDIV1, VREGEN
#use delay(clock=48000000)

e ira a 12MIPS

https://controlautomaticoeducacion.com/microcontroladores-pic/comunicacion-usb-cdc-con-pic-ccs-c/
info de jemplo  :o
"La curiosidad mato al gato, pero murio sabiendo"