Programa
principal.
/*
###################################################################
** Filename : ProcessorExpert.c
** Project : ProcessorExpert
** Processor : MKL25Z128VLK4
** Version : Driver 01.01
** Compiler : GNU C Compiler
** Date/Time : 2013-08-29, 14:26, # CodeGen: 0
** Abstract :
** Main module.
** This module
contains user's application code.
** Settings :
** Contents :
** No public methods
**
**
###################################################################*/
/*!
** @file ProcessorExpert.c
** @version 01.01
** @brief
** Main module.
** This module contains
user's application code.
*/
/*!
**
@addtogroup ProcessorExpert_module ProcessorExpert module
documentation
**
@{
*/
/* MODULE ProcessorExpert */
/* Including needed modules to compile
this module/procedure */
#include "Cpu.h"
#include "Events.h"
#include "LED_ROJO.h"
#include "BitIoLdd1.h"
#include "LED_VERDE.h"
#include "BitIoLdd2.h"
#include "LED_AZUL.h"
#include "BitIoLdd3.h"
#include "TI1.h"
#include "TimerIntLdd1.h"
#include "TU1.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"
void f_LED(int);
void f_task_amarillo(void);
void f_task_verde(void);
void f_task_rojo(void);
void inicio(void);
#define T_ROJO 30 // En unidades de ms,
por tanto = 3seg.
#define T_VERDE 50 // En unidades de ms,
por tanto = 5seg.
#define T_AMARILLO 20 // En unidades de ms,
por tanto = 2seg.
enum tareas {task_rojo, task_verde, task_amarillo}; //Enumera las tareas,
por lo tanto, t_rojo=0, t_verde=1, t_amarillo=2
enum colores{negro, azul, verde, cyan, rojo, magenta, amarillo, blanco};
enum bit_color{b_azul=1,b_verde=2,b_rojo=4};
extern int timmer;
int sig_task;
int color_led;
void (*ap_func[3])(void)={f_task_rojo, f_task_verde,
f_task_amarillo};
/* User includes (#include below this
line is not maintained by Processor Expert) */
/*lint -save -e970 Disable MISRA rule (6.3) checking. */
int main(void)
/*lint -restore Enable MISRA rule (6.3)
checking. */
{
/* Write
your local variable definition here */
/***
Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
PE_low_level_init();
/*** End
of Processor Expert internal initialization.
***/
/* Write
your code here */
/* For
example: for(;;) { } */
inicio();
for(;;)
{
while(timmer)
{}
(*ap_func[sig_task])();
/*
switch (sig_task)
{
case task_rojo:
f_task_rojo();
break;
case task_verde:
f_task_verde();
break;
case task_amarillo:
f_task_amarillo();
break;
} */
}
/*** Don't
write any code pass this line, or it will be deleted during code generation.
***/
/*** RTOS
startup code. Macro PEX_RTOS_START is defined by the RTOS component. DON'T
MODIFY THIS CODE!!! ***/
#ifdef PEX_RTOS_START
PEX_RTOS_START();
/* Startup
of the selected RTOS. Macro is defined by the RTOS component. */
#endif
/*** End
of RTOS startup code. ***/
/***
Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/
for(;;){}
/***
Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/
} /*** End of main routine. DO NOT MODIFY
THIS TEXT!!! ***/
/* END ProcessorExpert */
/*!
** @}
*/
/*
** ###################################################################
**
** This file was created by Processor Expert
10.2 [05.07]
** for the Freescale Kinetis
series of microcontrollers.
**
**
###################################################################
*/
void inicio(void)
{
sig_task=task_rojo;
timmer=0;
}
void f_task_rojo(void)
{
timmer=T_ROJO;
f_LED(rojo);
sig_task=task_verde;
}
void f_task_verde(void)
{
timmer=T_VERDE;
f_LED(verde);
sig_task=task_amarillo;
}
void f_task_amarillo(void)
{
timmer=T_AMARILLO;
f_LED(amarillo);
sig_task=task_rojo;
}
void f_LED(int color_led)
{
if (color_led&b_rojo)
LED_ROJO_ClrVal();
else
LED_ROJO_SetVal();
if (color_led&b_verde)
LED_VERDE_ClrVal();
else
LED_VERDE_SetVal();
if (color_led&azul)
LED_AZUL_ClrVal();
else
LED_AZUL_SetVal();
}
Eventos
/*
###################################################################
** Filename : Events.c
** Project : ProcessorExpert
** Processor : MKL25Z128VLK4
** Component : Events
** Version : Driver 01.00
** Compiler : GNU C Compiler
** Date/Time : 2013-08-29, 14:26, # 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
int timmer;
/* User includes (#include below this
line is not maintained by Processor Expert) */
/*
**
===================================================================
** Event : Cpu_OnNMIINT (module Events)
**
** Component : Cpu
[MKL25Z128LK4]
** Description :
** 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'.
** Parameters : None
** Returns : Nothing
**
===================================================================
*/
void Cpu_OnNMIINT(void)
{
/* Write
your code here ... */
}
/*
** ===================================================================
** Event : TI1_OnInterrupt (module Events)
**
** Component : TI1
[TimerInt]
** Description :
** When a timer
interrupt occurs this event is called (only
** when the component is enabled -
<Enable> and the events are
** enabled -
<EnableEvent>). This event is enabled only if a
** <interrupt
service/event> is enabled.
** Parameters : None
** Returns : Nothing
** ===================================================================
*/
void TI1_OnInterrupt(void)
{
if(timmer>0)
--timmer;
/* Write your code here ... */
}
/* END Events */
#ifdef __cplusplus
}
/* extern
"C" */
#endif
/*!
** @}
*/
/*
** ###################################################################
**
** This file was created by Processor Expert
10.2 [05.07]
** for the Freescale Kinetis
series of microcontrollers.
**
** ###################################################################
*/
No hay comentarios:
Publicar un comentario