You are on page 1of 2

#include <stdio.

h>
#include "board.h"
#include "peripherals.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "MKL28Z7.h"
#include "fsl_debug_console.h"
/* TODO: insert other include files here. */

/* TODO: insert other definitions and declarations here. */

/*
* @brief Application entry point.
*/

void PORT_init (void)


{
//Act del reloj en los port
PCC_PORTC |= (1UL<<30);
PORTC->PCR[9]|=PORT_PCR_MUX(3);
PORTC->PCR[1]|=PORT_PCR_MUX(4);
PORTC->PCR[2]|=PORT_PCR_MUX(4);
GPIOC->PDDR |=(1UL<<1) | (1UL<<2) | ~(1UL<<2)(1UL<<9);
}

void WDOG_disable (void)


{
WDOG->CNT=0xD928C520;
WDOG->TOVAL=0x0000FFFF;
WDOG->CS=0x00002100;
}

int main(void) {
/* Init board hardware. */
BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
#ifndef BOARD_INIT_DEBUG_CONSOLE_PERIPHERAL
/* Init FSL debug console. */
BOARD_InitDebugConsole();
#endif

PRINTF("Hello World\n");

WDOG_disable();
TPM0_init();
PORT_init();
TPM0_CH0_IC_init();
inicia_TPM0_counter();

uint16_t CurrentCaptureVal = 0;
uint16_t PriorCaptureVal = 0;
uint16_t DeltaCapture = 0;

void TPM0_init(void)
{
PCC_TPM0|= PCC_CLKFG_PCS(0b010) | PCC_CLKCFG_CGC_MASK;
SCG->SIRCDIV |= (1U<<16);
TPM0->SC =0;
TPM0->SC |= TPM_SC_PS(7);

TPM0->COMBINE = 0x00000000;
TPM0->POL = 0x00000000;
TPM0->MOD = 62499;
}

void TPM0_CH5_ICinit(void)
{
TPM0->CONTROL[5].CnSC = TPM_CnSC_ELSB_MASK | TPM_CnSC_ELSA_MASK;
}

while(1) {
if(1==((TPM0->CONTROLS[5].CnSC & TPM_CnSC_CHF_MASK)>>TPM_CnSC_CHF_SHIFT)){
TPM0->CONTROLS[5].CnSC &= ~TPM_CnSC_CHF_MASK;
PriorCaptureVal = CurrentCaptureVal;
CurrentCaptureVal = TPM0->CONTROLS[5].CnV;

DeltaCapture = CurrentCaptureVal - PriorCaptureVal;

PRINTF("\n Frecuencia: %d", DeltaCapture);


}
}
return 0 ;

You might also like