⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 IAPBootLoader源程序是单片机ARM的方法3
💻 C
字号:
/******************** (C) COPYRIGHT 2003 STMicroelectronics ********************
* File Name          : main.c
* Author             : MCD Application Team
* Date First Issued  : 16/05/2003
* Description        : GPIO library example
********************************************************************************
* History:
* 24/05/05 : V3.0
* 30/11/04 : V2.0
* 16/05/03 : Created
*******************************************************************************
 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.
*******************************************************************************/

#include "71x_lib.h"

#define IVR_off_addr        0x18        // Interrupt Vector Register offset
#define EIC_Base_addr       0xFFFFF800  // EIC base address

void delay(void)
{
  u16 i;
  for(i=0; i<0xFFFF; i++); /* delay */
}
#define MASK 0x0000ffff
int main(void)
{

  #ifdef DEBUG
  debug();
  #endif

  
  /*  Channel priority configuration: channel 0 priority > channel 19 priority ----- */
#if 1
  {  
  extern u32 T0TIMI_Addr;
  u32 * p = (u32 *)& T0TIMI_Addr;
  u8 bCounter;
  u32 offset;

  
  EIC->ICR = 0x00000000; 
  EIC->IER = 0x00000000; 
  EIC->IPR = 0xFFFFFFFF; 
  EIC->FIR = 0x0000000C; 
  EIC->CIPR = 0x00000000; 
  
  EIC->IVR  = 0xEA000000; // IVR = high half of "B offset" instruction

  for (bCounter=0;bCounter<32;bCounter++)
    {
      offset = (((*p)&0xffff)+0x7E0) >> 2;
      p++;
      EIC->SIR[bCounter] = offset << 16;
    }
  }

#endif
    
  EIC->SIR[0] |= 0x000002;           /*  Configure the channel 0 priority */
  //EIC->IER |= 1<<0;                  /*  Enable interrupts on channel 0 */

  EIC->SIR[19] |= 0x00000001;        /*  Configure the channel 19 priority */
  EIC->IER |= 1<<19;                 /*  Enable interrupt on channel 19 */

  EIC->ICR |= 0x00000001;            /*  Enable interrupts */

/*  Configure GPIO0 in Push-Pull output ------------------------------------------ */
  GPIO0->PC0 = 0xFFFF;
  GPIO0->PC1 = 0x0000;
  GPIO0->PC2 = 0xFFFF;
  GPIO0->PD  = 0x0000;               /*  reset pins */

/*  Configure GPIO1 in Push-Pull output ------------------------------------------ */
  GPIO1->PC0 = 0xFFFF;
  GPIO1->PC1 = 0x0000;
  GPIO1->PC2 = 0xFFFF;
  GPIO1->PD  = 0xFFFF;               /*  reset pins */

/*  TIM0 configuration ----------------------------------------------------------- */
  TIM0->CR2 &= ~0x2000;
  TIM0->CR2  = 0x20FF;
  TIM0->CNTR = 0xFFFF;
  TIM0->CR1  = 0x8000;


/*  TIM1 configuration ------------------------------------------------------------*/
  TIM1->CR2 &= ~0x2000;
  TIM1->CR2  = 0x20FF;
  //TIM1->CR2  = 0x200F;
  TIM1->CNTR = 0xFFFF;
  //TIM1->CNTR = 0xFFF0;
  TIM1->CR1  = 0x8000;


  while(1);                          /*   infinite loop */
}

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

⌨️ 快捷键说明

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