TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Maria33 en 04 de Noviembre de 2008, 17:23:28
-
Hola, estoy trabajando con el stack TCPIP de microchip , con el compilador C18 y me sale el siguiente error:
MPLINK 4.1, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - Recursion not supported for functions with locals of "overlay" storage class: AnnounceIP
Errors : 1
¿Alguien sabe de que podría ser?
Gracias
-
Hola, tengo un error de codigo compilado con C18 y no se si el problema sea mio o si es verdaderamente C18.
El error esta el intentar compilar:
temporal=2^0;
temporal queda con 2 de respuesta... :?
Estoy usando C18 y el microcontrolador PIC18F4550. (Este es mi primer proyecto con (C18)
Declaro temporal como char y nada, como int y tampoco.
Se me da por pasar el código a CCS y sorpresa que me sigue diciendo que 2^0=2... :?
Sera que este PIC no da con ^..Creo es imposible, seguro algo estoy haciendo mal pero no veo donde. Me pueden por favor decir ¿que esta mal en esto?
Gracias!
Este es el código de CCS, no hay mayor misterio, solo quiero calcular eso y no le da.
void main(){
char temporal=0;
set_tris_a(0b00000000);
set_tris_b(0b00000000);
set_tris_c(0b00000000);
set_tris_d(0b00000000);
set_tris_e(0b00000000);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_16,249,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_ccp1(CCP_OFF);
setup_ccp2(CCP_OFF);
set_pwm1_duty(0);
set_pwm2_duty(0);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//enable_interrupts(INT_TIMER0);
//enable_interrupts(GLOBAL);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab
// TODO: USER CODE!!
temporal=2^0;
while(1){
output_high(pin_c7);
delay_ms(1000);
output_low(pin_c7);
delay_ms(1000);
}
}
-
Hola Picmouse
La instrucción x^y en lenguaje C es una or exclusiva por lo que
0010
XOR 0000
________
0010
No creo que esté mal. :?:
-
migsantiago, muchas gracias por responderme...
Sabia que era una tontada y era pleno error mio. Es que yo intentaba elevar a una potencia el 2 y me voy a colocar "^" para hacerlo... No recordaba para nada que era XOR.
Muchas gracias nuevamente.
Dejo la solución al problema mio con el "^"
Yo intentaba eevar un numero X a la potencia Y. En otros lenguajes se puede usar:
respuesta=X^Y
Para C se hace necesaria una libreria llamada math.h. Todos los compiladores la traen.
Entonces, en la cabecera del archivo agregar
#include <math.h>
Y cada vez que se quiera usar se escribe
respuesta=pow(X,Y);
X es el numero que se quiere elevar a la potencia Y
Saludos!