Buenas. Recién me estoy aventurando con este compilador por su facilidad con c, pero me está dando dolores de cabeza, algunas situaciones por ejemplo: delay_ms().
En mi caso me encuentro con que no efectúa el delay el tiempo que impongo sino que lo hace por alguna constante, en mi pc 40 veces mas lento, en la de un compañero 6.5 veces más lento.
En fin, el problema en concreto parece evidente: un problema o con el compilador o con las librerías del pic especificado en este tema.
Quería saber si alguien de ustedes que esté más familiarizado con las librerías o el compilador sabría darme alguna solución, porque necesito emplear los conversores A/D que tiene para un proyecto, y esto me está retrasando.
Les dejo el código del ejemplo de un blinker con dos leds que funciona pero con retardos más largos.
Aquí el .c
Aquí el .h
Desde ya, muchas gracias, espero puedan darme un mano.
Saludos.
En mi caso me encuentro con que no efectúa el delay el tiempo que impongo sino que lo hace por alguna constante, en mi pc 40 veces mas lento, en la de un compañero 6.5 veces más lento.
En fin, el problema en concreto parece evidente: un problema o con el compilador o con las librerías del pic especificado en este tema.
Quería saber si alguien de ustedes que esté más familiarizado con las librerías o el compilador sabría darme alguna solución, porque necesito emplear los conversores A/D que tiene para un proyecto, y esto me está retrasando.
Les dejo el código del ejemplo de un blinker con dos leds que funciona pero con retardos más largos.
Aquí el .c
Código:
#include "C:\Users\Administrator\Desktop\Cursando\TDI2\Proyecto Final\ejled\led.h"
void main()
{
setup_spi(SPI_SS_DISABLED);
setup_lcd(LCD_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab
set_tris_a(0x00);
set_tris_b(0x00);//portb como salida(RB0,las demas desactivadas)
disable_interrupts(GLOBAL); //todas las interrupciones desactivadas
do{
output_high(PIN_A0); //Led on
output_low(PIN_B5);
delay_ms(250/40);
output_high(PIN_B5);
output_low(PIN_A0); //Led off
delay_ms(250/40);
}while(true) ;
}
Código:
#include <16F1939.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES ECH //External clock with CLKOUT(PIC18), high power
#FUSES WDT_SW //No Watch Dog Timer, enabled in Software
#FUSES NOPUT //No Power Up Timer
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOCLKOUT //I/O function on OSC2
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES NOWRT //Program memory not write protected
#FUSES NOVCAP //VCAP pin disabled
#FUSES PLL //4X HW PLL enabled
#FUSES STVREN //Stack full/underflow will cause reset
#FUSES BORV19 //Brownout reset at 1.9V
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES RESERVED //Used to set the reserved FUSE bits
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
Saludos.
Última edición por un moderador: