TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Axel_18 en 02 de Junio de 2009, 21:56:29
-
Hola a todos....
me estoy iniciando en C y habia empezado con MikroC, pero me di cuenta que el CCS tiene mas cobertura y ayuda y decidi cambiar de programa...
Tengo el la version 4.068 de ccs, e intento programar cualquier cosa...pero no puedo, el programa no me deja...
el codigo que intento programar es de un ejemplo que sale en el mismo foro
#include <16f628a.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use fast_io(b)
///PROGRAMA
void main(void)
{
set_tris_b(0xFE); //portb como salida(RB0,las demas desactivadas)
disable_interrupts(GLOBAL); //todas las interrupciones desactivadas
do{
output_low(PIN_B0); //led off
delay_ms(500);
output_high(PIN_B0); //led on
delay_ms(500);
}while(TRUE); //bucle infinito
}
Le agradeceria a cualquiera que me guiara para poder programar y generar el archivo .hex
saludos
-
...pero no puedo, el programa no me deja...
...
¿podrías ser mas explicito? no entiendo a que te refieres.
-
Deberias ponerlos errores y warnings que tira el compilador, asi e ayudamos..
-
Bueno..al tratar de escribir un codigo trate de crear un nuevo archivo (que fue lo primero que hice al instalar el programa) y trate de compilarlo precionando los tres botones de "compile", "build" y "build all". Luego aparecio una ventanita que decia haber compilado con exito...creo un archivo .C un .H y otros, pero ningun .hex y luego borre todos los archivos que genero en la carpeta
Despues cree un nuevo archivo de codigo para generar otro programa, pero no me dejaba compilarlo y me pide aun el primer programa que hise.
Mi duda es que si tengo que abrir de algun lado el archivo para que lo reconozca para compilarlo
-
mmm...me di cuenta que el codigo de la imagen tiene un problema...
En esta esta arreglado pero sigue arrojando el mismo error
-
A mi me ha dado problemas similares cuando intento compilar un archivo.c cuyo nombre ya había usado en un anterior proyecto.
Ejemplo:
- Compilo archivo.c ubicado en c:\programa1\ y no hay problema
- Compilo archivo.c ubicado en c:\programa2\ y el compilador se niega a compilar o compila el anterior
La solución fue nombrar los archivos.c siempre con nombres diferentes y así el compilador ya no se confunde.
archivo1.c
archivo2.c
Eso también me solucionó el error (0,0) illegal C character in line 0.
-
Problema solucionado ejejeje.....era muy simple!! solo debia abrir el proyecto con la opccion "proyect" y no directamente del archivo.
Otra duda, como genero el archivo .HEX con CCS? o que tengo que descargar para generarlo?
-
Al compilar te crea el archivo *.hex!
-
Creo que tengo el PCW 5.01
La solución fue nombrar los archivos.c siempre con nombres diferentes y así el compilador ya no se confunde.
archivo1.c
archivo2.c
Si esto es lo que hago, los dos dentro de la misma carpeta, a un a si solo compila el 1º programa que cargo. Todos los demas aunque haga modificaciones en ellos ni siquiera guarda los canvios, a menos que pinche yo directamente en guardar.
Que le pasa??
-
Para obligar al compilador a compilar un nuevo archivo en la misma carpeta de otro proyecto, te paras sobre la etiqueta del nombre del archivo .c elegido y le das a botón derecho, se abrirá el menú contextual y allí eliges Make File Proyect.
y después compilas y deberías tener el archivo Hex en la carpeta, salvo que le hayas dado una ruta diferente donde poner el archivo compilado. :mrgreen: :mrgreen:
-
Antes no avia que "obligarle" a nada. Y lo tengo que hacer constantemente, pero funciona gracias es todo un paso. Estaba arto de cerrar y abrir codigos una y otra vec
-
Eso cambio desde que CCS adopto los proyectos con múltiples compilaciones, adaptado a ANSI C.
Cuando se normalizan los critican, je..je!! :D :D
Recomiendo que le pongas la etiqueta Resuelto al titulo del tema. ;-) ;-)
-
Buenos dias estoy teniendo un pequeño problema al compilar mi proyecto y no se como solucionarlo, al compilarlo me salta un error saben que puede estar causando esto?
*** Error 128 "C:\Users\ltriador\Desktop\firm ultimo reportadores\checks.h" Line 6(9,15): A #DEVICE required before this line
C:\Users\ltriador\Desktop\firm ultimo reportadores\checks.o ===> 1 Errors, 0 Warnings.
Build Failed.
y corresponde a esta linea del codigo
#ifndef _CHECKS_H_
#define _CHECKS_H_ linea de error
-
Esa no es la linea de error, podrias poner el codigo de este archivo?:
C:\Users\ltriador\Desktop\firm ultimo reportadores\checks.h
-
aqui esta
-
Y eso lo tenes en un check.c ?
Por que es raro que intente "compilar" a un arhivo objeto un .h ( checks.o ), no veo nada malo en el .h
Lo que vos marcaste antes es una guarda, para que no se incluya si es que ya esta incluido. Nada mas, pero no levantaria ningun error. Si tenes el .c que le pertenece a ese .h genial. que es ahi donde tira el error.
Aunque viendo algun problema de otra persona:
https://www.ccsinfo.com/forum/viewtopic.php?t=35724
No le vi solucion, tal ves hay algo mal en como lo tenes realizado. Alguien con mas experiencia en CCS te podra responder mejor. Veo que no es un problema de archivos sino compilador.
-
si esta en un check.c por eso me parece raro
-
aqui esta el checks.c
-
Si contamos las 3 lineas del .h + las lineas del .c, lo que seria que levanta error es el set_adc_channel()
Proba comentarla, y fijate si cambia de "linea" el error. De todas formas es algo "interno" a CCS, es como si no hubieras especificado el dispositivo con el cual se esta trabajando. ( O tal ves se definio varias veces por demas )
Por si las dudas otra cosa a probar segun el link que te pase: es que si estas usando MPLAB, pone unicamente el main.c en "Source Files" los demas ponelos en "Other Files".
-
probe comentando esa linea del codigo y sigue ocurriendo el mismo error, actualmente estoy tratando de compilar con el ccs c de pic
-
CCS es un cross-compiler, no es un ANSI C compiler, por lo tanto desconoce la plataforma para la cual debe generar código. La estructura de tu programa, previo a la información de la biblioteca standard (archivos.h) y las definiciones de funciones, necesita brindar al compilador, información del entorno, porque el compilador no conoce el tipo de microcontrolador, (#DEVICE, #INCLUDE) ni la frecuencia de operación, (#USE) ni la configuración del oscilador, (#FUSES) ni los parámetros de la UART, etc, etc, etc
Los errores del compilador reflejan fielmente el problema.
Por otro lado, los errores que entrega el compilador, refieren a la linea donde se detectó algún error en tiempo de compilación, no significa que el error esté necesariamente en esa linea de código, como ocurre en éste caso.
Por lo tanto, tienes que completar las directivas al compilador que faltan en el código de tu programa.
Saludos,
PicBurner