コード例 #1
0
ファイル: PrISM_1.c プロジェクト: Burn2539/CoRo_PW_PSOC
/*******************************************************************************
* Function Name: PrISM_1_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_1_Start().
*
* Parameters:  
*  None.
*
* Return: 
*  None.
*
*******************************************************************************/
void PrISM_1_Init(void) 
{
    uint8 enableInterrupts;
    
    /* Writes Seed value, polynom value and density provided by customizer */
    PrISM_1_WriteSeed(PrISM_1_SEED);
    PrISM_1_WritePolynomial(PrISM_1_POLYNOM);
    PrISM_1_WritePulse0(PrISM_1_DENSITY0);
    PrISM_1_WritePulse1(PrISM_1_DENSITY1);
    
    enableInterrupts = CyEnterCriticalSection();
    /* Set FIFO0_CLR bit to use FIFO0 as a simple one-byte buffer*/
    CY_SET_REG8(PrISM_1_AUX_CONTROL_PTR, 
                        CY_GET_REG8(PrISM_1_AUX_CONTROL_PTR) | PrISM_1_FIFO0_CLR);
    CyExitCriticalSection(enableInterrupts);
    
    #if(!PrISM_1_PULSE_TYPE_HARDCODED)
        /* Writes density type provided by customizer */
        #if(PrISM_1_GREATERTHAN_OR_EQUAL == PrISM_1_COMPARE0)
            PrISM_1_CONTROL_REG |= PrISM_1_CTRL_COMPARE_TYPE0_GREATER_THAN_OR_EQUAL;
        #else
            PrISM_1_CONTROL_REG &= (uint8)~PrISM_1_CTRL_COMPARE_TYPE0_GREATER_THAN_OR_EQUAL;
        #endif /* End PrISM_1_COMPARE0 */    
    
        #if(PrISM_1_GREATERTHAN_OR_EQUAL == PrISM_1_COMPARE1)
            PrISM_1_CONTROL_REG |= PrISM_1_CTRL_COMPARE_TYPE1_GREATER_THAN_OR_EQUAL;
        #else
            PrISM_1_CONTROL_REG &= (uint8)~PrISM_1_CTRL_COMPARE_TYPE1_GREATER_THAN_OR_EQUAL;
        #endif /* End PrISM_1_COMPARE1 */    
    #endif /* End PrISM_1_PULSE_TYPE_HARDCODED */
}
コード例 #2
0
void initializeSystem(void) {
    CyGlobalIntEnable;
    
    UART_Start(); 
    
    PrISM_1_Start();
    PrISM_2_Start();
    
    Opamp_1_Start();
    
    // Start the Bluetooth Stack
    CyBle_Start(CustomEventHandler);	
    
    // Set up the LED. First set its output to be off so that the LED doesn't blink on.
    // Then set the drive mode to strong.
	PrISM_1_WritePulse0(255);
	PrISM_1_WritePulse1(255);
	PrISM_2_WritePulse0(255);
	
	RED_SetDriveMode(RED_DM_STRONG);
	GREEN_SetDriveMode(GREEN_DM_STRONG);
	BLUE_SetDriveMode(BLUE_DM_STRONG);
    
    // Start the ADC
    ADC_SAR_Seq_Start();
    ADC_SAR_Seq_StartConvert();
    ADC_SAR_Seq_IRQ_Enable();
    // Enable an interupt for when the ADC has data
    ADC_SAR_Seq_IRQ_StartEx(ADC_SAR_Seq_ISR_LOC);
    
    // Start the Timer for the ADC
    ADC_Timer_Start();
    
    elapsed = 0;
}
コード例 #3
0
void UpdateRGBled(void)
{
	/* Local variables to calculate the color components from RGB received data*/
	uint8 debug_red;
	uint8 debug_green;
	uint8 debug_blue;
	uint8 intensity_divide_value = RGBledData[INTENSITY_INDEX];
	
	debug_red = (uint8)(((uint16)RGBledData[RED_INDEX] * intensity_divide_value) / 255);
	debug_green = (uint8)(((uint16)RGBledData[GREEN_INDEX] * intensity_divide_value) / 255);
	debug_blue = (uint8)(((uint16)RGBledData[BLUE_INDEX] * intensity_divide_value) / 255);
	
	/* Update the density value of the PrISM module for color control*/
	PrISM_1_WritePulse0(RGB_LED_MAX_VAL - debug_red);
    PrISM_1_WritePulse1(RGB_LED_MAX_VAL - debug_green);
    PrISM_2_WritePulse0(RGB_LED_MAX_VAL - debug_blue);
	
	/* Update RGB control handle with new values */
	rgbHandle.attrHandle = CYBLE_RGB_LED_SERVICE_RGB_LED_CHARACTERISTIC_CHAR_HANDLE;
	rgbHandle.value.val = RGBledData;
	rgbHandle.value.len = RGB_CHAR_DATA_LEN;
	rgbHandle.value.actualLen = RGB_CHAR_DATA_LEN;
	
	/* Send updated RGB control handle as attribute for read by central device */
	CyBle_GattsWriteAttributeValue(&rgbHandle, FALSE, &cyBle_connHandle, FALSE);  
}
コード例 #4
0
ファイル: PrISM_1_PM.c プロジェクト: Burn2539/CoRo_PW_PSOC
/*******************************************************************************
* Function Name: PrISM_1_RestoreConfig
********************************************************************************
*
* Summary:
*  Restores the current user configuration.
*
* Parameters:  
*  None.
*
* Return: 
*  None.
*
* Global Variables:
*  PrISM_1_backup - used when non-retention registers are restored.
*
*******************************************************************************/
void PrISM_1_RestoreConfig(void) 
{
    #if (CY_UDB_V0)
    
        uint8 enableInterrupts;
        
        #if(!PrISM_1_PULSE_TYPE_HARDCODED)
            PrISM_1_CONTROL_REG = PrISM_1_backup.cr;
        #endif /* End PrISM_1_PULSE_TYPE_HARDCODED */

        CY_SET_REG8(PrISM_1_SEED_COPY_PTR, PrISM_1_backup.seed_copy);
        CY_SET_REG8(PrISM_1_SEED_PTR, PrISM_1_backup.seed);
        PrISM_1_WritePolynomial(PrISM_1_backup.polynom);
        PrISM_1_WritePulse0(PrISM_1_backup.density0);
        PrISM_1_WritePulse1(PrISM_1_backup.density1);
        
        enableInterrupts = CyEnterCriticalSection();
        /* Set FIFO0_CLR bit to use FIFO0 as a simple one-byte buffer*/
        CY_SET_REG8(PrISM_1_AUX_CONTROL_PTR, 
                        CY_GET_REG8(PrISM_1_AUX_CONTROL_PTR) | PrISM_1_FIFO0_CLR);
        CyExitCriticalSection(enableInterrupts);

    #else   /* CY_UDB_V1 */

        #if(!PrISM_1_PULSE_TYPE_HARDCODED)
            PrISM_1_CONTROL_REG = PrISM_1_backup.cr;
        #endif /* End PrISM_1_PULSE_TYPE_HARDCODED */

        CY_SET_REG8(PrISM_1_SEED_COPY_PTR, PrISM_1_backup.seed_copy);
        CY_SET_REG8(PrISM_1_SEED_PTR, PrISM_1_backup.seed);
        PrISM_1_WritePolynomial(PrISM_1_backup.polynom);
    
    #endif  /* End CY_UDB_V0 */
}