TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: xelieve en 18 de Abril de 2014, 20:14:53
-
El problema es cuando lo quiero compilar con el PCW no me agarra, si alguien me puede ayudar
#include <18F1320.h>
#fuses HS,NOWDT,NOPROTECT
#use delay(clock=20000000)
int pot1a, pot1b, pot2a, pot2b, aux1, aux2, diferencial, diferencial1, variable, conteo;
int1 boleano=1;
VOID MAIN()
{
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
set_tris_b(0x00);
output_high(PIN_B4); // rutina para encender el LED durante 1 segundo
delay_ms(250);
delay_ms(250);
delay_ms(250);
delay_ms(250);
output_low(PIN_B4);
conteo=0;
//A2 entrada del opam
//A3 salida a los 2n2222
while(true)
{
set_adc_channel(0);//the next read_adc call will read channel 0
delay_us(10);
pot1a=read_adc();
set_adc_channel(1);//the next read_adc call will read channel 0
delay_us(10);
pot2a=read_adc();
// PRIMERA ETAPA.- HACEMOS LA REFERENCIA 0, Por lo que restamos 13 a la
//magnitud adquirida.
if (pot1a<13)
{
pot1a=0;
}
else
{
pot1a=pot1a-13;
}
if (pot2a<13)
{
pot2a=0;
}
else
{
pot2a=pot2a-13;
}
// SEGUNDA ETAPA.- Si el valor de POT1A Y/O POT2A es menor a 36, AUX vale 1.
//Pero si son mayor a 36, descomponemos el 2 bloques y la variable AUX vale 2
if (pot1a<=36)
{
aux1=1;
}
if (pot1a>36)
{
pot1b=pot1a-36;
pot1a=36;
aux1=2;
}
if (pot2a<=36)
{
aux2=1;
}
if (pot2a>36)
{
pot2b=pot2a-36;
pot2a=36;
aux2=2;
}
// TERCERA ETAPA. Alzamos todos los pines.
output_high(PIN_B3);
output_high(PIN_B2);
output_high(PIN_B1);
output_high(PIN_B0);
// CUARTA ETAPA, Iniciamos comparaciones.
if(aux1>aux2) // si la lectura ADC1 es mayor a ADC2
{
diferencial=(36+pot1b)-pot2a;
if (diferencial<=36)
{
delay_ms(1);
delay_us (248-(pot1b*7));
output_low(PIN_B3);
delay_us(diferencial*7);
output_low(PIN_B1);
delay_us(pot2a*7);
delay_us(pot2a*7);
output_low(PIN_B0);
delay_us(diferencial*7);
output_low(PIN_B2);
delay_ms(18);
delay_us(248-(pot1b*7));
}
else
{
diferencial1=diferencial-36;
delay_ms(1);
delay_us(248-(pot1b*7));
output_low(PIN_B3);
delay_us(252);
delay_us(diferencial1*7);
output_low(PIN_B1);
delay_us(pot2a*7);
delay_us(pot2a*7);
output_low(PIN_B0);
delay_us(252);
delay_us(diferencial1*7);
output_low(PIN_B2);
delay_ms(18);
delay_us(248-(pot1b*7));
}
}
else
if (aux1<aux2)
{
diferencial=(36+pot2b)-pot1a;
if (diferencial<=36)
{
delay_ms(1);
delay_us(248-(pot2b*7));
output_low(PIN_B1);
delay_us(diferencial*7);
output_low(PIN_B3);
delay_us(pot1a*7);
delay_us(pot1a*7);
output_low(PIN_B2);
delay_us(diferencial*7);
output_low(PIN_B0);
delay_ms(18);
delay_us(248-(pot2b*7));
}
else
{
diferencial1=diferencial-36;
delay_ms(1);
delay_us(248-(pot2b*7));
output_low(PIN_B1);
delay_us(252);
delay_us(diferencial1*7);
output_low(PIN_B3);
delay_us(pot1a*7);
delay_us(pot1a*7);
output_low(PIN_B2);
delay_us(252);
delay_us(diferencial1*7);
output_low(PIN_B0);
delay_ms(18);
delay_us(248-(pot2b*7));
}
}
else
if (aux1==aux2 && aux1==1)
{
if (pot1a>pot2a)
{
diferencial=pot1a-pot2a;
delay_ms(1);
delay_us(252);
delay_us(248-(pot1a*7));
output_low(PIN_B3);
delay_us(diferencial*7);
output_low(PIN_B1);
delay_us(pot2a*7);
delay_us(pot2a*7);
output_low(PIN_B0);
delay_us(diferencial*7);
output_low(PIN_B2);
delay_ms(18);
delay_us(252);
delay_us(248-(pot1a*7));
}
else
if (pot1a<pot2a)
{
diferencial=pot2a-pot1a;
delay_ms(1);
delay_us(252);
delay_us(248-(pot2a*7));
output_low(PIN_B1);
delay_us(diferencial*7);
output_low(PIN_B3);
delay_us(pot1a*7);
delay_us(pot1a*7);
output_low(PIN_B2);
delay_us(diferencial*7);
output_low(PIN_B0);
delay_ms(18);
delay_us(252);
delay_us(248-(pot2a*7));
}
else
if (pot1a==pot2a)
{
delay_ms(1);
delay_us(252);
delay_us(248-(pot1a*7));
output_low(PIN_B1);
output_low(PIN_B3);
delay_us(pot1a*7);
delay_us(pot1a*7);
output_low(PIN_B2);
output_low(PIN_B0);
delay_ms(18);
delay_us(252);
delay_us(248-(pot1a*7));
}
}
else
if (aux1==aux2 && aux1==2)
{
if (pot1b>pot2b)
{
diferencial=pot1b-pot2b;
delay_ms(1);
delay_us(248-(pot1b*7));
output_low(PIN_B3);
delay_us(diferencial*7);
output_low(PIN_B1);
delay_us(252);
delay_us(pot2b*7);
delay_us(pot2b*7);
delay_us(252);
output_low(PIN_B0);
delay_us(diferencial*7);
output_low(PIN_B2);
delay_ms(18);
delay_us(248-(pot1b*7));
}
else
if (pot1b<pot2b)
{
diferencial=pot2b-pot1b;
delay_ms(1);
delay_us(248-(pot2b*7));
output_low(PIN_B1);
delay_us(diferencial*7);
output_low(PIN_B3);
delay_us(252);
delay_us(pot1b*7);
delay_us(pot1b*7);
delay_us(252);
output_low(PIN_B2);
delay_us(diferencial*7);
output_low(PIN_B0);
delay_ms(18);
delay_us(248-(pot2b*7));
}
else
if (pot1b==pot2b)
{
delay_ms(1);
delay_us(248-(pot1b*7));
output_low(PIN_B1);
output_low(PIN_B3);
delay_us(252);
delay_us(pot1b*7);
delay_us(pot1b*7);
delay_us(252);
output_low(PIN_B2);
output_low(PIN_B0);
delay_ms(18);
delay_us(248-(pot1b*7));
}
}
set_adc_channel(2);
delay_us(10);
variable=read_adc();
if (variable>=150 && CONTEO==250)
{
boleano=!boleano;
if (boleano==1)
{
output_high(PIN_A3);
}
if (boleano==0)
{
output_low(PIN_A3);
}
CONTEO=0;
}
conteo=conteo+1;
IF (conteo==251)
{
conteo=250;
}
pot1a=0;
pot1b=0;
pot2a=0;
pot2b=0;
aux1=0;
aux2=0;
diferencial=0;
diferencial1=0;
variable=0;
}
}
-
Pues a mi si me compilo tu programa , tienes el PIC C?, si no puede ser que sea tu programa. Saludos
-
Pues a mi si me compilo tu programa , tienes el PIC C?, si no puede ser que sea tu programa. Saludos
si pero parece q tengo el programa dañado, puedes pasarme el hex o un lick para descargar es q es para algo urgente