| 1 | 608 | jeremybenn | /* ----------------------------------------------------------------------------
 | 
      
         | 2 |  |  |  *         ATMEL Microcontroller Software Support
 | 
      
         | 3 |  |  |  * ----------------------------------------------------------------------------
 | 
      
         | 4 |  |  |  * Copyright (c) 2008, Atmel Corporation
 | 
      
         | 5 |  |  |  *
 | 
      
         | 6 |  |  |  * All rights reserved.
 | 
      
         | 7 |  |  |  *
 | 
      
         | 8 |  |  |  * Redistribution and use in source and binary forms, with or without
 | 
      
         | 9 |  |  |  * modification, are permitted provided that the following conditions are met:
 | 
      
         | 10 |  |  |  *
 | 
      
         | 11 |  |  |  * - Redistributions of source code must retain the above copyright notice,
 | 
      
         | 12 |  |  |  * this list of conditions and the disclaimer below.
 | 
      
         | 13 |  |  |  *
 | 
      
         | 14 |  |  |  * Atmel's name may not be used to endorse or promote products derived from
 | 
      
         | 15 |  |  |  * this software without specific prior written permission.
 | 
      
         | 16 |  |  |  *
 | 
      
         | 17 |  |  |  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
 | 
      
         | 18 |  |  |  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 | 
      
         | 19 |  |  |  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
 | 
      
         | 20 |  |  |  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
 | 
      
         | 21 |  |  |  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
      
         | 22 |  |  |  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 | 
      
         | 23 |  |  |  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 | 
      
         | 24 |  |  |  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 | 
      
         | 25 |  |  |  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 | 
      
         | 26 |  |  |  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
      
         | 27 |  |  |  * ----------------------------------------------------------------------------
 | 
      
         | 28 |  |  |  */
 | 
      
         | 29 |  |  |  
 | 
      
         | 30 |  |  | //------------------------------------------------------------------------------
 | 
      
         | 31 |  |  | /// \unit
 | 
      
         | 32 |  |  | /// !Purpose
 | 
      
         | 33 |  |  | ///
 | 
      
         | 34 |  |  | /// Configuration and handling of PIT.
 | 
      
         | 35 |  |  | ///
 | 
      
         | 36 |  |  | /// !Usage
 | 
      
         | 37 |  |  | ///
 | 
      
         | 38 |  |  | /// -# Initialize System timer for a period in µsecond with
 | 
      
         | 39 |  |  | ///    PIT_Init
 | 
      
         | 40 |  |  | /// -# Set the PIT Periodic Interval Value with PIT_SetPIV
 | 
      
         | 41 |  |  | /// -# Enable the PIT with PIT_Enable
 | 
      
         | 42 |  |  | /// -# Enable & disable PIT interrupts using PIT_EnableInt and
 | 
      
         | 43 |  |  | ///    PIT_DisableInt
 | 
      
         | 44 |  |  | /// -# Read PIT mode register
 | 
      
         | 45 |  |  | ///    PIT_GetMode
 | 
      
         | 46 |  |  | /// -# Read PIT status register
 | 
      
         | 47 |  |  | ///    PIT_GetStatus
 | 
      
         | 48 |  |  | /// -# Read PIT CPIV and PICNT without ressetting the counters
 | 
      
         | 49 |  |  | ///    PIT_GetPIIR
 | 
      
         | 50 |  |  | /// -# Read System timer CPIV and PICNT without ressetting the counters
 | 
      
         | 51 |  |  | ///    PIT_GetPIVR
 | 
      
         | 52 |  |  | //------------------------------------------------------------------------------
 | 
      
         | 53 |  |  |  
 | 
      
         | 54 |  |  | #ifndef PIT_H
 | 
      
         | 55 |  |  | #define PIT_H
 | 
      
         | 56 |  |  |  
 | 
      
         | 57 |  |  | //------------------------------------------------------------------------------
 | 
      
         | 58 |  |  | //         Headers
 | 
      
         | 59 |  |  | //------------------------------------------------------------------------------
 | 
      
         | 60 |  |  |  
 | 
      
         | 61 |  |  | //------------------------------------------------------------------------------
 | 
      
         | 62 |  |  | //         Exported functions
 | 
      
         | 63 |  |  | //------------------------------------------------------------------------------
 | 
      
         | 64 |  |  | extern void PIT_Init(unsigned int period, unsigned int pit_frequency);
 | 
      
         | 65 |  |  | extern void PIT_SetPIV(unsigned int piv);
 | 
      
         | 66 |  |  | extern void PIT_Enable(void);
 | 
      
         | 67 |  |  | extern void PIT_EnableIT(void);
 | 
      
         | 68 |  |  | extern void PIT_DisableIT(void);
 | 
      
         | 69 |  |  | extern unsigned int PIT_GetMode(void);
 | 
      
         | 70 |  |  | extern unsigned int PIT_GetStatus(void);
 | 
      
         | 71 |  |  | extern unsigned int PIT_GetPIIR(void);
 | 
      
         | 72 |  |  | extern unsigned int PIT_GetPIVR(void);
 | 
      
         | 73 |  |  |  
 | 
      
         | 74 |  |  | #endif //#ifndef PIT_H
 |