📄 main.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 + -