Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

19/04/2015 #1


PIC12F675 No actuan todas las Salidas
Hola. Tengo un inconveniente.
Quiero algo tan sencillo como utilizar las salidas del PIC12F675, ponerlas a cero o uno para activar unos relevadores.
Yo creo que el problema es del proteus, no puedo creer que no respondan algunas salidas del PIC con el comando OUTPUT_HIGH u OUTPUT_LOW.

Estoy utilizando PIC C de CCS y en el programa muestro lo que quiero hacer.
Anulé algunas líneas porque solo quiero colocar ahora todas las salidas a cero.
Código PHP:
#include <luceslear.h>

#ZERO_RAM

void main()
{
   
int16 valoradc;
  
// port_A_pullups(0x01);
   
setup_adc_ports(sAN0);
   
setup_adc(ADC_CLOCK_INTERNAL);
   
   
output_low(RA1);
   
output_low(RA2);
   
output_low(RA4);
   
output_low(RA5);

   while(
TRUE)
   {
      
//TODO: User Code
 /*     set_adc_channel(ADC);
      delay_us(50);
      valoradc=read_adc(); delay_us(50);
 
      if(valoradc>900&&valoradc<=1024)
         delay_ms(2500);
      if(valoradc>800&&valoradc<=899)
         delay_ms(2000);
      if(valoradc>700&&valoradc<=799)
         delay_ms(1750);
      if(valoradc>600&&valoradc<=699)
         delay_ms(1500);
      if(valoradc>500&&valoradc<=599)
         delay_ms(1250);
      if(valoradc>400&&valoradc<=499)
         delay_ms(1000);
      if(valoradc>300&&valoradc<=399)
         delay_ms(550);
      if(valoradc>200&&valoradc<=299)
         delay_ms(500);
      if(valoradc>0&&valoradc<=199)
         delay_ms(250);
      */
      
output_low(RA4); //delay_ms(550); output_High(RA4);
      
output_low(RA5); //delay_ms(550); output_High(RA5);
      
    /*  delay_ms(750);
      output_low(RA0); 
      output_low(RA1); 
      delay_ms(250); 
      output_High(RA0);
      output_High(RA1);*/
   
}


Está configurado así el PIC con los fuses y demás.
Código PHP:
#include <12F675.h>
#device ADC=10

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOBROWNOUT               //No brownout reset

#use delay(crystal=1MHz)
//#use STANDARD_IO( A )
#use FIXED_IO( A_outputs=PIN_A1,PIN_A2,PIN_A5,PIN_A4 )

#define ADC   PIN_A0
#define RA1   PIN_A1
#define RA2   PIN_A2
#define RESET   PIN_A3
#define RA4   PIN_A4
#define RA5   PIN_A5 
No entiendo por qué en proteus 8, solo pone a cero AN1 y AN2.
AN4 y AN5 como que no funcionaran. No sé porque es.
19/04/2015 #2

Avatar de JoaquinFerrero

¿En qué línea indicas que el puerto A es de salida?
19/04/2015 #3


Fixed_io(a_outputs=Pin_A1 ..... Ahi

Pero no sale por A4 ni A5
19/04/2015 #4
Moderador

Avatar de D@rkbytes

dcsalg dijo: Ver Mensaje
AN4 y AN5 como que no funcionaran. No sé porque es.
AN4 y AN5 no existen, AN3 sí y pertenece al pin 3 o GP4.

En tu programa tienes establecido que se usará un cristal como fuente de reloj.
Entonces por lógica, los pines GP4 y GP5 se usarán para el oscilador a cristal.
De esa forma no se pueden usar como pines estándar I/O, a menos que se use el oscilador interno.
19/04/2015 #5


Tenés razon, se me paso eso, porque quería usar el interno y no preste atención. Creo que hay otro error también Nose si este pic tiene oscilador interno de 1 Mhz
19/04/2015 #6
Moderador

Avatar de D@rkbytes

dcsalg dijo: Ver Mensaje
Creo que hay otro error también. No sé si este PIC tiene oscilador interno de 1 Mhz.
¿Qué dice la hoja de datos al respecto?
20/04/2015 #7


Es de 4Mhz el Pic12f675, ahora anda perfecto todo. Lo que me llamo la atencion, cuando use el wizard juro que habia elegido oscilador interno, pero bueno listo, todo perfecto ahora :-) asique fue eso del crystal el error.
20/04/2015 #8
Moderador

Avatar de D@rkbytes

Es mejor que no uses el Project Wizard porque no siempre da buenos resultados.
De preferencia lee la hoja de datos y estudia como funcionan los registros y sus bits de configuración.
Por lo general los fuses de la palabra de configuración vienen casi al final del documento.

Ya cuando tengas algo más en claro sobre lo que necesitas configurar, usa el "Device Editor" porque ahí también encontrarás información del PIC y los fuses con la sintaxis del PIC C Compiler.


Suerte.
Imágenes Adjuntas
Tipo de Archivo: jpg Device Editor.jpg (380,3 KB (Kilobytes), 29 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.