TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: black_flowers en 15 de Julio de 2007, 14:29:18
-
hola estoy intentando empezar con hitech picc y con el típico programa de encender leds. He hecho esto pero me manda dos errores:
#include <pic1684.h>
#include "delay.h"
void main(){
TRISA=0;
PORTA=0;
while (1);
{PORTA=0;
DelayMs(10);
PORTA=1;
DelayMs(10);
}
}
Executing: "C:\HT-PIC\BIN\PICC.EXE" -C -E"parpadeo_leds.cce" "parpadeo_leds.c" -O"parpadeo_leds.obj" -I"C:\HT-PIC\samples\delay" -Zg9 -O -ASMLIST -Q -MPLAB -16F84A
Executing: "C:\HT-PIC\BIN\PICC.EXE" -E"parpadeo_leds_hitech.lde" "D:\PIC\Fuentes\16F84A\C\parpadeo leds hi-tech\parpadeo_leds.obj" -M"parpadeo_leds_hitech.map" -O"parpadeo_leds_hitech.cof" -O"parpadeo_leds_hitech.hex" -Q -MPLAB -16F84A
Error[000] : undefined symbol:
Error[000] : _DelayMs (D:\PIC\Fuentes\16F84A\C\parpadeo leds hi-tech\parpadeo_leds.obj)
BUILD FAILED: Sun Jul 15 19:28:17 2007[/i]
¿veis algún error en el código así a simple vista?
1 saludo. :-)
-
a mi paso lo mismo, sucede que debes colocar el archivo delay.h dentro de la carpeta donde esta alojado tu programa. El compilador busca el include delay.h y como no lo encuentra no sabe que es delay_Ms. Este aspecto no me gusta del hitech :x
-
Tienes que poner la libreria de delays.h dentro d ela carpeta de proyectos porque así tú lo has querido al poner dobles comillas dicha librería, si la pones entre triangulitos <>, el compilador buscará en la carpeta propia de drivers.
Suerte!!! ;)
-
al final lo he solucionado, eso qu eme habeis puesto es cierto, pero la razón por la que no funcionaba era porque había que incluír el "delay.c" y no el "delay.h"
gracias, un saludo. :-) :-)
-
eso no es cierto, yo tengo ese mismo programa con el archivo incluido delay.h y funciona perfectamente, de hecho si incluyes la carpeta delay.c sola no funciona y te muestra errores parecidos o iguales al qeu tu dices.
#include "init.h" // included by C-Wiz
#include <htc.h>
#include"delay.h"
void
main(void)
{
init(); // función generada por C-Wiz, en donde se encuentran configuradas las palabras de configuración
PORTB=0X00;
while (1){
PORTB=0b00000001;
DelayMs(200);
PORTB=0b00000010;
DelayMs(200);
PORTB=0b00000100;
DelayMs(200);
PORTB=0b00001000;
DelayMs(200);
PORTB=0b00010000;
DelayMs(200);
PORTB=0b00100000;
DelayMs(200);
PORTB=0b01000000;
DelayMs(200);
PORTB=0b10000000;
DelayMs(200);
}
}