hdo
beta
|
00001 /* ---------------------------------------------------------------------------- 00002 * ATMEL Microcontroller Software Support 00003 * ---------------------------------------------------------------------------- 00004 * Copyright (c) 2008, Atmel Corporation 00005 * 00006 * All rights reserved. 00007 * 00008 * Redistribution and use in source and binary forms, with or without 00009 * modification, are permitted provided that the following conditions are met: 00010 * 00011 * - Redistributions of source code must retain the above copyright notice, 00012 * this list of conditions and the disclaimer below. 00013 * 00014 * Atmel's name may not be used to endorse or promote products derived from 00015 * this software without specific prior written permission. 00016 * 00017 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR 00018 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00019 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE 00020 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, 00021 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00022 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 00023 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00024 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00025 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 00026 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00027 * ---------------------------------------------------------------------------- 00028 */ 00029 00030 //------------------------------------------------------------------------------ 00031 // Headers 00032 //------------------------------------------------------------------------------ 00033 00034 #include "pit.h" 00035 #include <board.h> 00036 00037 //------------------------------------------------------------------------------ 00038 // Exported functions 00039 //------------------------------------------------------------------------------ 00040 //------------------------------------------------------------------------------ 00045 //------------------------------------------------------------------------------ 00046 void PIT_Init(unsigned int period, 00047 unsigned int pit_frequency) 00048 { 00049 AT91C_BASE_PITC->PITC_PIMR = period? (period * pit_frequency + 8) >> 4 : 0; // +8 to avoid %10 and /10 00050 AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITEN; 00051 } 00052 00053 //------------------------------------------------------------------------------ 00055 //------------------------------------------------------------------------------ 00056 void PIT_SetPIV(unsigned int piv) 00057 { 00058 AT91C_BASE_PITC->PITC_PIMR = piv | (AT91C_BASE_PITC->PITC_PIMR & (AT91C_PITC_PITEN | AT91C_PITC_PITIEN)); 00059 } 00060 00061 //------------------------------------------------------------------------------ 00063 //------------------------------------------------------------------------------ 00064 void PIT_Enable(void) 00065 { 00066 AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITEN; 00067 } 00068 00069 //---------------------------------------------------------------------------- 00071 //---------------------------------------------------------------------------- 00072 void PIT_EnableIT(void) 00073 { 00074 AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITIEN; 00075 } 00076 00077 //------------------------------------------------------------------------------ 00079 //------------------------------------------------------------------------------ 00080 void PIT_DisableIT(void) 00081 { 00082 AT91C_BASE_PITC->PITC_PIMR &= ~AT91C_PITC_PITIEN; 00083 } 00084 00085 //------------------------------------------------------------------------------ 00087 //------------------------------------------------------------------------------ 00088 unsigned int PIT_GetMode(void) 00089 { 00090 return(AT91C_BASE_PITC->PITC_PIMR); 00091 } 00092 00093 //------------------------------------------------------------------------------ 00095 //------------------------------------------------------------------------------ 00096 unsigned int PIT_GetStatus(void) 00097 { 00098 return(AT91C_BASE_PITC->PITC_PISR); 00099 } 00100 00101 //------------------------------------------------------------------------------ 00103 //------------------------------------------------------------------------------ 00104 unsigned int PIT_GetPIIR(void) 00105 { 00106 return(AT91C_BASE_PITC->PITC_PIIR); 00107 } 00108 00109 //------------------------------------------------------------------------------ 00111 //------------------------------------------------------------------------------ 00112 unsigned int PIT_GetPIVR(void) 00113 { 00114 return(AT91C_BASE_PITC->PITC_PIVR); 00115 }