TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: telekitor en 30 de Noviembre de 2004, 20:54:00
-
¿Se puede simular en el MPLAB sim un codigo compilado en css?
compilar compila pero cuando termina de compilar (sale la ventana
del compilador ccs diciendome que todo bien) se para y da este mensaje
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:Archivos de programaPICCCcsc.exe" afinador18f452ccs.c +FH
No Errors
Halting build on first failed translation as user preferences indicate.
BUILD FAILED: Wed Dec 01 03:35:40 2004
¿que pasa aqui? ¿tengo que hacer algo mas?
es un pic18F452
select laguage toolsuite: ccs-c compiler
build options for project: c-compiler compiler PCH
¿por que falla? BUILD FAILED
![Helado Helado]()
![Helado Helado]()
![Helado Helado]()
![Helado Helado]()
![Helado Helado]()
![Helado Helado]()
:
-
Pués sigue compilando perfectamente los PIC18.
¿Has cargado el PLug-in?
-
bueno el plugin esta bien cargado
aqui os pongo el mensaje pero con erores mas descriptivos
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:Archivos de programaPICCCcsc.exe" afinador18f452ccs.c +FH
No Errors
Executing: "C:Archivos de programaPICCCcsc.exe" ini.c +FH
Error[128] E:proyectoafinadormplabafinador18f452CCSini.c 2 : A #DEVICE required before this line
Executing: "C:Archivos de programaPICCCcsc.exe" delay.c +FH
Error[128] E:proyectoafinadormplabafinador18f452CCSdelay.c 3 : A #DEVICE required before this line
Executing: "C:Archivos de programaPICCCcsc.exe" adc.c +FH
Error[128] E:proyectoafinadormplabafinador18f452CCSadc.c 3 : A #DEVICE required before this line
Executing: "C:Archivos de programaPICCCcsc.exe" contipos.c +FH
Error[128] E:proyectoafinadormplabafinador18f452CCScontipos.c 4 : A #DEVICE required before this line
Executing: "C:Archivos de programaPICCCcsc.exe" lcd.c +FH
Error[128] E:proyectoafinadormplabafinador18f452CCSlcd.c 4 : A #DEVICE required before this line
Executing: "C:Archivos de programaPICCCcsc.exe" m_afinador.c +FH
Error[18] E:proyectoafinadormplabafinador18f452CCSm_afinador.c 1 : File can not be opened
Not in local "E:proyectoafinadormplabafinador18f452CCSpotencia.h"
Not in "C:ARCHIV~1PICCdevicespotencia.h"
Not in "C:ARCHIV~1PICCdriverspotencia.h"
Executing: "C:Archivos de programaPICCCcsc.exe" m_buzzer.c +FH
Error[128] E:proyectoafinadormplabafinador18f452CCSm_buzzer.c 1 : A #DEVICE required before this line
Executing: "C:Archivos de programaPICCCcsc.exe" m_configuracion.c +FH
Error[128] E:proyectoafinadormplabafinador18f452CCSm_configuracion.c 1 : A #DEVICE required before this line
Skipping link step. Not all sources built successfully.
BUILD FAILED: Wed Dec 01 21:13:09 2004
y este es el codigo fuente del archivo principal
#include <18F452.h>
#device adc=10
//#include <stdlib.h>
//#include <math.h>
#include "ini.c"
#include "delay.c"
#include "lcd.c"
#include "contipos.c"
#include "adc.c"
#include "m_afinador.c"
#include "m_buzzer.c"
#include "m_configuracion.c"
/*********************variables***************************/
static char display[16];
static char cadena[6];
static char modo;
static signed long notabase;
/*
#locate display=0x200
#locate cadena=0x210
#locate modo=0x216
#locate notabase=0x217
*/
#INT_EXT
void irq_modo(void){
//antirebotes
delayantirebotes();
modo = modo + 0x01;
if(modo>0x02){
modo = 0x00;
}
}
#INT_EXT1
void irq_mas(void){
//antirebotes
delayantirebotes();
if(modo==0x02){
notabase = notabase + 1;
if(notabase>453){
notabase = 453;
}
}
}
#INT_EXT2
void irq_menos(void){
//antirebotes
delayantirebotes();
if(modo==0x02){
notabase = notabase - 1;
if(notabase<427){
notabase = 427;
}
}
}
//*********************programa principal**********************/
#zero_ram
// programa principal
void main(void){
//inicializamos pic
inipic();
//inicializamos variables
modo = 0x00;
notabase = 440;
//inicializamos lcd
inilcd();
//habilitamos interrupcion
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
enable_interrupts(INT_EXT1);
enable_interrupts(INT_EXT2);
ext_int_edge(0, H_TO_L);
ext_int_edge(1, H_TO_L);
ext_int_edge(2, H_TO_L);
/* //delay
output_c(0x03);
output_c(0x01);
delay_us(256);
output_c(0x00);
delay_ms(1000);
*/
modoafinador();
for(;
{
switch(modo){
case 0x00: //modo afinador
// modoafinador();
break;
case 0x01: ; //modo buzzer
modobuzzer();
break;
case 0x02: ; //modo configuracion
modoconfiguracion(notabase,display,cadena);
break;
default: ;
break;
}
// reseteamos watchdog
restart_wdt();
}
}
![Helado Helado]()
![Helado Helado]()
![Helado Helado]()
![Helado Helado]()
![Helado Helado]()
![Helado Helado]()
-
¿Has hecho el proyecto en MPLAB con Proyect Wizard y en uno de los pasos de creación del Proyecto le has dicho que vas a usar el 452? No se me ocurre nada.
-
creo que debes agregarle al proyecto el linker Script de 18f452 que creo que es 18f452.lkr.
suerte.
-
Hola!
Segun leo ya has conseguido que al menos te salgan los errores, en mi caso, tb me pasaba que me indicaba "#DEVICE is needed before..." bueno y mi solucion, en que en la primera linea de cada una de las librerias que hayas hecho pongas el pic que tienes, es decir, "#DEVICE 18XXXXX" lo intentas compilar y te da otro error indicando que ya esta definido ese aparato, es entonces cuando comentas "//" esa linea y vuelves a compilar.
Espero que este truco que a mi me funciona tb al resto! Por favor, comenta como te ha ido?
Un saludo, Iñigo
-
Hola!
A ver quien es el que me puede ayudar...
Estoy programando en CCS y quiero calcular el tiempo de una función que hice con el MPLAB SIM... el tema que cuando pasa por "lcd_init();" no sale y se queda como si fuera un lazo infinito... alguien sabe porque es eso? como lo soluciono? estoy usando el nuevo 16F1936.
Muchas gracias!
Saludos!!
-
es un link viejo por lo q veo
Hola!
A ver quien es el que me puede ayudar...
Estoy programando en CCS y quiero calcular el tiempo de una función que hice con el MPLAB SIM... el tema que cuando pasa por "lcd_init();" no sale y se queda como si fuera un lazo infinito... alguien sabe porque es eso? como lo soluciono? estoy usando el nuevo 16F1936.
Muchas gracias!
Saludos!!
si solamente lo estas simulando, se va a tildar siempre, porque cuando entra en lcd_init() va a estar esperando que le responda el lcd, y eso nunca va a pasar.
pero como dije recién, el link debe ser viejo y ya tus dudas ya te la habrán respondido jeje...
Saludos