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.
Está configurado así el PIC con los fuses y demás.
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.
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.
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);*/
}
}
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
AN4 y AN5 como que no funcionaran. No sé porque es.
Última edición por un moderador: