Merge PCB updates
[SCSI2SD.git] / software / SCSI2SD / v4 / SCSI2SD.cydsn / Generated_Source / PSoC5 / cyutils.c
1 /*******************************************************************************
2 * FILENAME: cyutils.c
3 * Version 4.0
4 *
5 *  Description:
6 *   CyUtils provides function to handle 24-bit value writes.
7 *
8 ********************************************************************************
9 * Copyright 2008-2013, Cypress Semiconductor Corporation.  All rights reserved.
10 * You may use this file only in accordance with the license, terms, conditions,
11 * disclaimers, and limitations in the end user license agreement accompanying
12 * the software package with which this file was provided.
13 *******************************************************************************/
14
15 #include "cytypes.h"
16
17 #if (!CY_PSOC3)
18
19     /***************************************************************************
20     * Function Name: CySetReg24
21     ****************************************************************************
22     *
23     * Summary:
24     *  Writes the 24-bit value to the specified register.
25     *
26     * Parameters:
27     *  addr : adress where data must be written
28     *  value: data that must be written
29     *
30     * Return:
31     *  None
32     *
33     * Reentrant:
34     *  No
35     *
36     ***************************************************************************/
37     void CySetReg24(uint32 volatile * addr, uint32 value)
38     {
39         uint8 volatile *tmpAddr;
40
41         tmpAddr = (uint8 volatile *) addr;
42
43         tmpAddr[0u] = (uint8) value;
44         tmpAddr[1u] = (uint8) (value >> 8u);
45         tmpAddr[2u] = (uint8) (value >> 16u);
46     }
47
48
49     #if(CY_PSOC4)
50
51         /***************************************************************************
52         * Function Name: CyGetReg24
53         ****************************************************************************
54         *
55         * Summary:
56         *  Reads the 24-bit value from the specified register.
57         *
58         * Parameters:
59         *  addr : adress where data must be read
60         *
61         * Return:
62         *  None
63         *
64         * Reentrant:
65         *  No
66         *
67         ***************************************************************************/
68         uint32 CyGetReg24(uint32 const volatile * addr)
69         {
70             uint8 const volatile *tmpAddr;
71             uint32 value;
72
73             tmpAddr = (uint8 const volatile *) addr;
74
75             value  =  (uint32) tmpAddr[0u];
76             value |= ((uint32) tmpAddr[1u] << 8u );
77             value |= ((uint32) tmpAddr[2u] << 16u);
78
79             return(value);
80         }
81
82     #endif  /*(CY_PSOC4)*/
83
84 #endif  /* (!CY_PSOC3) */
85
86
87 /* [] END OF FILE */