/******************************************************************************* * Function Name: PrISM_PulseIndicator_Init ******************************************************************************** * * Summary: * Initialize component's parameters to the parameters set by user in the * customizer of the component placed onto schematic. Usually called in * PrISM_PulseIndicator_Start(). * * Parameters: * None. * * Return: * None. * *******************************************************************************/ void PrISM_PulseIndicator_Init(void) { uint8 enableInterrupts; /* Writes Seed value, polynom value and density provided by customizer */ PrISM_PulseIndicator_WriteSeed(PrISM_PulseIndicator_SEED); PrISM_PulseIndicator_WritePolynomial(PrISM_PulseIndicator_POLYNOM); PrISM_PulseIndicator_WritePulse0(PrISM_PulseIndicator_DENSITY0); PrISM_PulseIndicator_WritePulse1(PrISM_PulseIndicator_DENSITY1); enableInterrupts = CyEnterCriticalSection(); /* Set FIFO0_CLR bit to use FIFO0 as a simple one-byte buffer*/ #if (PrISM_PulseIndicator_RESOLUTION <= 8u) /* 8bit - PrISM */ PrISM_PulseIndicator_AUX_CONTROL_REG |= PrISM_PulseIndicator_FIFO0_CLR; #elif (PrISM_PulseIndicator_RESOLUTION <= 16u) /* 16bit - PrISM */ CY_SET_REG16(PrISM_PulseIndicator_AUX_CONTROL_PTR, CY_GET_REG16(PrISM_PulseIndicator_AUX_CONTROL_PTR) | PrISM_PulseIndicator_FIFO0_CLR | PrISM_PulseIndicator_FIFO0_CLR << 8u); #elif (PrISM_PulseIndicator_RESOLUTION <= 24u) /* 24bit - PrISM */ CY_SET_REG24(PrISM_PulseIndicator_AUX_CONTROL_PTR, CY_GET_REG24(PrISM_PulseIndicator_AUX_CONTROL_PTR) | PrISM_PulseIndicator_FIFO0_CLR | PrISM_PulseIndicator_FIFO0_CLR << 8u ); CY_SET_REG24(PrISM_PulseIndicator_AUX_CONTROL2_PTR, CY_GET_REG24(PrISM_PulseIndicator_AUX_CONTROL2_PTR) | PrISM_PulseIndicator_FIFO0_CLR ); #else /* 32bit - PrISM */ CY_SET_REG32(PrISM_PulseIndicator_AUX_CONTROL_PTR, CY_GET_REG32(PrISM_PulseIndicator_AUX_CONTROL_PTR) | PrISM_PulseIndicator_FIFO0_CLR | PrISM_PulseIndicator_FIFO0_CLR << 8u ); CY_SET_REG32(PrISM_PulseIndicator_AUX_CONTROL2_PTR, CY_GET_REG32(PrISM_PulseIndicator_AUX_CONTROL2_PTR) | PrISM_PulseIndicator_FIFO0_CLR | PrISM_PulseIndicator_FIFO0_CLR << 8u ); #endif /* End PrISM_PulseIndicator_RESOLUTION */ CyExitCriticalSection(enableInterrupts); #if(!PrISM_PulseIndicator_PULSE_TYPE_HARDCODED) /* Writes density type provided by customizer */ if(PrISM_PulseIndicator_GREATERTHAN_OR_EQUAL == 0 ) { PrISM_PulseIndicator_CONTROL_REG |= PrISM_PulseIndicator_CTRL_COMPARE_TYPE0_GREATER_THAN_OR_EQUAL; } else { PrISM_PulseIndicator_CONTROL_REG &= ~PrISM_PulseIndicator_CTRL_COMPARE_TYPE0_GREATER_THAN_OR_EQUAL; } if(PrISM_PulseIndicator_GREATERTHAN_OR_EQUAL == 0) { PrISM_PulseIndicator_CONTROL_REG |= PrISM_PulseIndicator_CTRL_COMPARE_TYPE1_GREATER_THAN_OR_EQUAL; } else { PrISM_PulseIndicator_CONTROL_REG &= ~PrISM_PulseIndicator_CTRL_COMPARE_TYPE1_GREATER_THAN_OR_EQUAL; } #endif /* End PrISM_PulseIndicator_PULSE_TYPE_HARDCODED */ }
/******************************************************************************* * Function Name: PrISM_PulseIndicator_2_RestoreConfig ******************************************************************************** * * Summary: * Restores the current user configuration. * * Parameters: * None. * * Return: * None. * * Global Variables: * PrISM_PulseIndicator_2_backup - used when non-retention registers are restored. * *******************************************************************************/ void PrISM_PulseIndicator_2_RestoreConfig(void) { #if (CY_UDB_V0) uint8 enableInterrupts; #if(!PrISM_PulseIndicator_2_PULSE_TYPE_HARDCODED) PrISM_PulseIndicator_2_CONTROL_REG = PrISM_PulseIndicator_2_backup.cr; #endif /* End PrISM_PulseIndicator_2_PULSE_TYPE_HARDCODED */ CY_SET_REG8(PrISM_PulseIndicator_2_SEED_COPY_PTR, PrISM_PulseIndicator_2_backup.seed_copy); CY_SET_REG8(PrISM_PulseIndicator_2_SEED_PTR, PrISM_PulseIndicator_2_backup.seed); PrISM_PulseIndicator_2_WritePolynomial(PrISM_PulseIndicator_2_backup.polynom); PrISM_PulseIndicator_2_WritePulse0(PrISM_PulseIndicator_2_backup.density0); PrISM_PulseIndicator_2_WritePulse1(PrISM_PulseIndicator_2_backup.density1); enableInterrupts = CyEnterCriticalSection(); /* Set FIFO0_CLR bit to use FIFO0 as a simple one-byte buffer*/ #if (PrISM_PulseIndicator_2_RESOLUTION <= 8u) /* 8bit - PrISM */ PrISM_PulseIndicator_2_AUX_CONTROL_REG |= PrISM_PulseIndicator_2_FIFO0_CLR; #elif (PrISM_PulseIndicator_2_RESOLUTION <= 16u) /* 16bit - PrISM */ CY_SET_REG16(PrISM_PulseIndicator_2_AUX_CONTROL_PTR, CY_GET_REG16(PrISM_PulseIndicator_2_AUX_CONTROL_PTR) | PrISM_PulseIndicator_2_FIFO0_CLR | PrISM_PulseIndicator_2_FIFO0_CLR << 8u); #elif (PrISM_PulseIndicator_2_RESOLUTION <= 24) /* 24bit - PrISM */ CY_SET_REG24(PrISM_PulseIndicator_2_AUX_CONTROL_PTR, CY_GET_REG24(PrISM_PulseIndicator_2_AUX_CONTROL_PTR) | PrISM_PulseIndicator_2_FIFO0_CLR | PrISM_PulseIndicator_2_FIFO0_CLR << 8u ); CY_SET_REG24(PrISM_PulseIndicator_2_AUX_CONTROL2_PTR, CY_GET_REG24(PrISM_PulseIndicator_2_AUX_CONTROL2_PTR) | PrISM_PulseIndicator_2_FIFO0_CLR ); #else /* 32bit - PrISM */ CY_SET_REG32(PrISM_PulseIndicator_2_AUX_CONTROL_PTR, CY_GET_REG32(PrISM_PulseIndicator_2_AUX_CONTROL_PTR) | PrISM_PulseIndicator_2_FIFO0_CLR | PrISM_PulseIndicator_2_FIFO0_CLR << 8u ); CY_SET_REG32(PrISM_PulseIndicator_2_AUX_CONTROL2_PTR, CY_GET_REG32(PrISM_PulseIndicator_2_AUX_CONTROL2_PTR) | PrISM_PulseIndicator_2_FIFO0_CLR | PrISM_PulseIndicator_2_FIFO0_CLR << 8u ); #endif /* End PrISM_PulseIndicator_2_RESOLUTION */ CyExitCriticalSection(enableInterrupts); #else /* CY_UDB_V1 */ #if(!PrISM_PulseIndicator_2_PULSE_TYPE_HARDCODED) PrISM_PulseIndicator_2_CONTROL_REG = PrISM_PulseIndicator_2_backup.cr; #endif /* End PrISM_PulseIndicator_2_PULSE_TYPE_HARDCODED */ CY_SET_REG8(PrISM_PulseIndicator_2_SEED_COPY_PTR, PrISM_PulseIndicator_2_backup.seed_copy); CY_SET_REG8(PrISM_PulseIndicator_2_SEED_PTR, PrISM_PulseIndicator_2_backup.seed); PrISM_PulseIndicator_2_WritePolynomial(PrISM_PulseIndicator_2_backup.polynom); #endif /* End CY_UDB_V0 */ }
/******************************************************************************* * Function Name: AppDelay_WritePeriod ******************************************************************************** * * Summary: * This function is used to change the period of the counter. The new period * will be loaded the next time terminal count is detected. * * Parameters: * period: This value may be between 1 and (2^Resolution)-1. A value of 0 will * result in the counter remaining at zero. * * Return: * void * *******************************************************************************/ void AppDelay_WritePeriod(uint32 period) { #if(AppDelay_UsingFixedFunction) uint16 period_temp = (uint16)period; CY_SET_REG16(AppDelay_PERIOD_LSB_PTR, period_temp); #else CY_SET_REG24(AppDelay_PERIOD_LSB_PTR, period); #endif /*Write Period value with appropriate resolution suffix depending on UDB or fixed function implementation */ }
/******************************************************************************* * Function Name: AppDelay_WriteCounter ******************************************************************************** * * Summary: * This funtion is used to set the counter to a specific value * * Parameters: * counter: New counter value. * * Return: * void * *******************************************************************************/ void AppDelay_WriteCounter(uint32 counter) { #if(AppDelay_UsingFixedFunction) /* This functionality is removed until a FixedFunction HW update to * allow this register to be written */ CY_SET_REG16(AppDelay_COUNTER_LSB_PTR, (uint16)counter); #else CY_SET_REG24(AppDelay_COUNTER_LSB_PTR, counter); #endif /* Set Write Counter only for the UDB implementation (Write Counter not available in fixed function Timer */ }