main.c

来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C语言 代码 · 共 105 行

C
105
字号
/******************** (C) COPYRIGHT 2005 STMicroelectronics ********************
* File Name          : main.c
* Author             : MCD Application Team
* Date First Issued  : 09/27/2005 :  V1.0
* Description        : The program presents an example of using Timer Base with End
                       Of Count Interrupt
**********************************************************************************
* History:
* 09/27/2005 :  V1.0
**********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH
* CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT
* OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
* OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
* CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*********************************************************************************/

/* Standard include ----------------------------------------------------------*/
#include "73x_lib.h"
/* Include of other module interface headers ---------------------------------*/
/* Local includes ------------------------------------------------------------*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/
/* Define Init Structure for each peripheral*/
  GPIO_InitTypeDef  GPIO_InitStructure;
  TB_InitTypeDef    TB_InitStructure;
  PRCCU_InitTypeDef PRCCU_InitStructure;
  CMU_InitTypeDef   CMU_InitStructure;

/* Private function prototypes -----------------------------------------------*/
/* Interface functions -------------------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
int main()
{

 #ifdef DEBUG
    debug();
#endif

/* CFG Initialization */

 /* GPIO0 Clock Enable */
  CFG_PeripheralClockConfig(CFG_CLK_GPIO0 , ENABLE);

 /* TB2 Clock Enable */
  CFG_PeripheralClockConfig(CFG_CLK_TB2 , ENABLE);

 /* EIC Clock Enable */
  CFG_PeripheralClockConfig(CFG_CLK_EIC , ENABLE);


  CMU_StructInit(&CMU_InitStructure);
  CMU_InitStructure.CMU_CKSEL0 = CMU_CKSEL0_CKOSC;
  CMU_Init(&CMU_InitStructure);

  /* set MCLK clock to 32 MHz */
  PRCCU_InitStructure.PRCCU_DIV2 = ENABLE ;
  PRCCU_InitStructure.PRCCU_MCLKSRC_SRC = PRCCU_MCLKSRC_PLL ;
  PRCCU_InitStructure.PRCCU_PLLDIV = PRCCU_PLLDIV_1 ;
  PRCCU_InitStructure.PRCCU_PLLMUL = PRCCU_PLLMUL_16;
  PRCCU_Init(&PRCCU_InitStructure);

/*-----------------------------------------------------------------------------
  Use Timer Base with End Of Count Interrupt
------------------------------------------------------------------------------*/

/* EIC Configuration */
  EIC_IRQChannelConfig(TB2_IRQChannel, ENABLE );
  EIC_IRQChannelPriorityConfig(TB2_IRQChannel,1);

 /* GPIO0 Configuration in Output Mode */
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT_PP;
  GPIO_InitStructure.GPIO_Pins = GPIO_PIN_ALL;
  GPIO_Init (GPIO0, &GPIO_InitStructure);

 /*TB2 Configuration to toggle Leds each 250ms */

   TB_InitStructure.TB_CLK_Source = TB_CLK_INTERNAL  ;
   TB_InitStructure.TB_Prescaler = 0xC7;  /* The internal TB Frequency = 160KHz   */
   TB_InitStructure.TB_Preload = 0x9C3F ; /* 160000Hz * 0.25 ms  = 40000 = 0x9C40 */

  TB_Init (TB2, &TB_InitStructure);

  EIC_IRQCmd(ENABLE);

  TB_ITConfig (TB2,ENABLE);

  TB_Cmd(TB2, ENABLE);

  GPIO_WordWrite(GPIO0,0xFFFF);


  while (1)
  {
  }
 }

/******************* (C) COPYRIGHT 2005 STMicroelectronics *****END OF FILE****/


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?