Can't Build project [KE02]

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Can't Build project [KE02]

586 次查看
juanignaciotroi
Contributor III

Hello. Yesterday as long as I finished working my project worked correctly without building problems. I really dont know why, but today it doesnt. The CWIDE claims the following errors (all related to void fuctions):

 

DescriptionResourcePathLocationType
multiple definition of `Cpu_OnNMIINT'Events.c/prueba/Sourcesline 173C/C++ Problem
first defined hereEvents.c/pruebaline 68C/C++ Problem
multiple definition of `ISR_PIT_display'Events.c/prueba/Sourcesline 131C/C++ Problem
first defined hereEvents.c/pruebaline 110C/C++ Problem
multiple definition of `mandar_dato_a_display'Events.c/prueba/Sourcesline 110C/C++ Problem
first defined hereEvents.c/pruebaline 131C/C++ Problem
multiple definition of `seleccionar_display'Events.c/prueba/Sourcesline 68C/C++ Problem
mingw32-make: *** [prueba.elf] Error 1pruebaC/C++ Problem
first defined hereEvents.c/pruebaline 173C/C++ Problem

 

What may be happening?

 

 

Events.c :

 

 

                                     /*

**     Filename    : Events.c

**     Project     : prueba

**     Processor   : MKE02Z64VLH2

**     Component   : Events

**     Version     : Driver 01.00

**     Compiler    : GNU C Compiler

**     Date/Time   : 2015-02-23, 10:33, # CodeGen: 0

**     Abstract    :

**         This is user's event module.

**         Put your event handler code here.

**     Settings    :

**     Contents    :

**         Cpu_OnNMIINT - void Cpu_OnNMIINT(void);

**

** ###################################################################*/

/*!

** @file Events.c

** @version 01.00

** @brief

**         This is user's event module.

**         Put your event handler code here.

*/        

/*!

**  @addtogroup Events_module Events module documentation

**  @{

*/        

/* MODULE Events */

 

 

 

 

 

 

 

 

 

 

#include "Cpu.h"

#include "Events.h"

 

 

#ifdef __cplusplus

extern "C" {

#endif

 

 

 

 

/* User includes (#include below this line is not maintained by Processor Expert) */

#include "Cpu.h"

#include "Events.h"

#include "PTD0.h"

#include "BitIoLdd1.h"

#include "PTH0.h"

#include "BitIoLdd2.h"

#include "PTB0.h"

#include "BitIoLdd3.h"

/* Including shared modules, which are used for whole project */

#include "PE_Types.h"

#include "PE_Error.h"

#include "PE_Const.h"

#include "IO_Map.h"

 

 

unsigned int DISPC=0; //variable global para ser utlizada en el ISR del display

unsigned int DISPB[5]= {0x8E,0x3A,0x0A,0x0A,0x3A};

unsigned int numero_display = 0;

 

 

int i;

int k;

 

 

void seleccionar_display(int numero_display){

switch (numero_display){
case 0:
  PTA0_ClrVal ();
PTB0_ClrVal ();
PTB2_ClrVal (); //queremos que se prenda el primer display
break;
case 1:
  PTA0_SetVal ();
PTB0_ClrVal ();
PTB2_ClrVal (); //queremos que se prenda el segundo display
break;

 

 

case 2:
  PTA0_ClrVal ();
PTB0_SetVal ();
PTB2_ClrVal (); //queremos que se prenda el tercer display
break;
case 3:
  PTA0_SetVal ();
PTB0_SetVal ();
PTB2_ClrVal (); //queremos que se prenda el cuarto display
break;
case 4:
  PTA0_ClrVal ();
PTB0_ClrVal ();
PTB2_SetVal (); //queremos que se prenda el quinto
break;
default:
  PTA0_SetVal ();
PTB0_SetVal ();
PTB2_SetVal (); //queremos que se prenda ningun display
break;
}

}

 

 

void mandar_dato_a_display(unsigned int dato){

for(i=0;i<8;i++){
unsigned char bit_salida = dato & 1;

dato = dato >> 1;

 

 

//mandamos el bit

if (bit_salida == 0)     PTD0_ClrVal ();
else     PTD0_SetVal ();

for(k=0;k<10;k++) //software delay para clock del CD4015

PTH0_SetVal ();  //subimos ponemos el clock en alto por un tiempo

PTH0_ClrVal ();  //bajamos el clock por un tiempo

for(k=0;k<100;k++) {}

 

 

}

}

 

 

 

 

void ISR_PIT_display (void){

Red_SetVal ();
Blue_ClrVal();

 

 

PTB3_SetVal ();                     //inicialmente el enable esta en alto
unsigned int dato = DISPB [DISPC];
mandar_dato_a_display(dato);
seleccionar_display(numero_display);
PTB3_ClrVal ();//seteamos el enable en alto para mandar los datos
for(k=0;k<1000;k++){}
PTB3_SetVal ();
if(numero_display == 5 ) numero_display = 0;
else numero_display ++;
if(DISPC == 5 ) DISPC = 0;
else DISPC ++;

}

 

 

/*

** ===================================================================

**     Event       :  Cpu_OnNMIINT (module Events)

**

**     Component   :  Cpu [MKE02Z64QH2]

*/

/*!

**     @brief

**         This event is called when the Non maskable interrupt had

**         occurred. This event is automatically enabled when the [NMI

**         interrupt] property is set to 'Enabled'.

*/

/* ===================================================================*/

/*

 

 

 

* */

 

 

 

 

void Cpu_OnNMIINT(void)

{

 

 

  /* Write your code here ... */

}

 

 

/* END Events */

 

 

#ifdef __cplusplus

}  /* extern "C" */

#endif

 

 

/*!

** @}

*/

/*

** ###################################################################

**

**     This file was created by Processor Expert 10.3 [05.09]

**     for the Freescale Kinetis series of microcontrollers.

**

** ###################################################################

*/

标签 (1)
标记 (4)
0 项奖励
回复
1 回复

420 次查看
Carlos_Mendoza
NXP Employee
NXP Employee

Hi Juan,

Could you please upload your project here so we can review it?

By looking at the errors it seems like the Events.c file was duplicated and one of the files is located on the path /prueba/Sources and the other on /prueba.

Best Regards,

Carlos Mendoza

Technical Support Engineer

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复