新手入门
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2016-3-1
- 在线时间
- 5 小时
|
1金钱
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#define LED0 PAout(8)
u16 time=0,count;
//void GPIOInit(void);
void NVIVInit(void);
void TIM3_Int_Init(u16 arr,u16 psc);
int main(void)
{
// GPIOInit();
delay_init();
TIM3_Int_Init(7199,9999);
NVIVInit();
LCD_Init();
POINT_COLOR=RED;//»-±êÑÕé«Îaoìé«
LCD_ShowString(30,130,200,12,12,"2014/3/7");
delay_ms(300);
while(1)
{
LCD_ShowxNum(30,70,count,2,12,1); //ÏÔê¾ êy×Ö
LCD_ShowString(30,80,200,16,16,":") ;
LCD_ShowxNum(30,90,time,2,12,1); //ÏÔê¾ êy×Ö
}
}
// void GPIOInit(void)
// {
// GPIO_InitTypeDef GPIO_InitStructure;
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
// GPIO_Init(GPIOA, &GPIO_InitStructure);
// }
void NVIVInit(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3ÖD¶Ï
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01; //ÏèÕ¼óÅÏè¼¶0¼¶
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //′óóÅÏè¼¶3¼¶
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQí¨μà±»ê1Äü
NVIC_Init(&NVIC_InitStructure); //¸ù¾YNVIC_InitStructÖDÖ¸¶¨μÄ2Îêy3õê¼»ˉíaéèNVIC¼Ä′æÆ÷
}
//¶¨ê±Æ÷
void TIM3_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //ê±Öóê1Äü
TIM_TimeBaseStructure.TIM_Period = arr; //éèÖÃÔúÏÂò»¸ö¸üDÂê¼t×°èë»î¶ˉμÄ×Ô¶ˉÖØ×°ÔØ¼Ä′æÆ÷ÖüÆúμÄÖμ ¼Æêyμ½5000Îa500ms
TIM_TimeBaseStructure.TIM_Prescaler =psc; //éèÖÃóÃà′×÷ÎaTIMxê±ÖóÆμÂê3yêyμÄÔ¤·ÖÆμÖμ 10KhzμļÆêyÆμÂê
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //éèÖÃê±Öó·Ö¸î:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIMÏòéϼÆêyÄ£ê½
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //¸ù¾YTIM_TimeBaseInitStructÖDÖ¸¶¨μÄ2Îêy3õê¼»ˉTIMxμÄê±¼ä»ùêyμ¥λ
TIM_ITConfig( TIM3, TIM_IT_Update ,ENABLE ); //ê1Äü»òÕßê§ÄüÖ¸¶¨μÄTIMÖD¶Ï // TIM2//ê1Äü
TIM_Cmd(TIM3, ENABLE); //ê1ÄüTIMxíaéè
}
void TIM3_IRQHandler(void) //TIM3ÖD¶Ï
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //¼ì2éÖ¸¶¨μÄTIMÖD¶Ï·¢éúóë·ñ:TIM ÖD¶ÏÔ′
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //Çå3yTIMxμÄÖD¶Ï′y′|àíλ:TIM ÖD¶ÏÔ′
time++;
if(time==60)
{
time=0;
count++;
}
}
}
|
|