?? main.c
字號:
/* MAIN.C file
* Copyright (c) 軒微科技
根據Time2 溢出中斷,實現流水燈。
軒微科技保留所有權利.
*/
#include "stm8s.h"
#include "stm8s_gpio.h"
#include "stm8s_beep.h"
#include "stm8s_clk.h"
#include "stm8s_tim2.h"
int i=0;
//延時一段時間
void xwDelay(void)
{
int i=2;
int j=200;
while(i--)while(j--);
}
@far @interrupt void Time2YiChu (void)
{
i++;
//間斷使能蜂鳴器
BEEP_Cmd(i%2);
//間斷亮LED
if(i%3==0)
{
GPIO_WriteLow(GPIOD, GPIO_PIN_0);
GPIO_WriteHigh(GPIOD, GPIO_PIN_2|GPIO_PIN_3);
}
else if(i%3==1)
{
GPIO_WriteLow(GPIOD, GPIO_PIN_2);
GPIO_WriteHigh(GPIOD, GPIO_PIN_0|GPIO_PIN_3);
}
else if(i%3==2)
{
GPIO_WriteLow(GPIOD, GPIO_PIN_3);
GPIO_WriteHigh(GPIOD, GPIO_PIN_0|GPIO_PIN_2);
}
//軟件延時一段時間
xwDelay();
//蜂鳴器響5次后切換系統時鐘,切換后響閃頻率會變高
}
main()
{
unsigned long i=0;
//反初始化GPIOD
GPIO_DeInit(GPIOD);
//實始化GPIOD,配置其第0,2,3位為推挽輸出,高電平.
GPIO_Init(GPIOD, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST);
//反初始化BEEP
//定時器2反初始化// 主時鐘默認為2M HZ
TIM2_DeInit();
//定時器2初始化,每100個毫秒中斷一次
TIM2_TimeBaseInit(0, 200000);
//使能定時器2更新中斷
TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);
//啟動定時器2
TIM2_Cmd(ENABLE);
// 允許CPU全局中斷
enableInterrupts();
while(1)
{
/*
i++;
//間斷使能蜂鳴器
BEEP_Cmd(i%2);
//間斷亮LED
if(i%3==0)
{
GPIO_WriteLow(GPIOD, GPIO_PIN_0);
GPIO_WriteHigh(GPIOD, GPIO_PIN_2|GPIO_PIN_3);
}
else if(i%3==1)
{
GPIO_WriteLow(GPIOD, GPIO_PIN_2);
GPIO_WriteHigh(GPIOD, GPIO_PIN_0|GPIO_PIN_3);
}
else if(i%3==2)
{
GPIO_WriteLow(GPIOD, GPIO_PIN_3);
GPIO_WriteHigh(GPIOD, GPIO_PIN_0|GPIO_PIN_2);
}
//軟件延時一段時間
xwDelay();
//蜂鳴器響5次后切換系統時鐘,切換后響閃頻率會變高
*/
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -