STM8-利用外部中断编写两个按键控制灯的亮灭
时间:11-24
来源:互联网
点击:
目的:熟悉外部中断的使用。(两个按键控制灯的亮灭)
#include"stm8s.h"
#include "stm8s_exti.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
void delay(uint i)
{
while(i--);
}
void main()
{
GPIO_DeInit(GPIOD);
GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST);//输出
GPIO_Init(GPIOD, GPIO_PIN_1, GPIO_MODE_OUT_PP_LOW_FAST);//输出
GPIO_DeInit(GPIOB);
GPIO_Init(GPIOB, GPIO_PIN_0, GPIO_MODE_IN_FL_IT);//输入
GPIO_Init(GPIOB, GPIO_PIN_1, GPIO_MODE_IN_FL_IT);//输入
EXTI_DeInit();
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB, EXTI_SENSITIVITY_FALL_ONLY);
enableInterrupts();
while (1)
{
}
}
#pragma vector=6//端口B中断编号为4,4+2=6
__interrupt void EXIT_PORTB_IRQHander(void)
{
if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_0)==0)
{
delay(250);//延时消抖动
if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_0)==0)
{
while((GPIO_ReadInputData(GPIOB)&GPIO_PIN_0)==0);//释放检测
GPIO_WriteReverse(GPIOD, GPIO_PIN_0);
}
}
if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_1)==0)
{
delay(250);//延时消抖动
if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_1)==0)
{
while((GPIO_ReadInputData(GPIOB)&GPIO_PIN_1)==0);//释放检测
GPIO_WriteReverse(GPIOD, GPIO_PIN_1);
}
}
}
#include"stm8s.h"
#include "stm8s_exti.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
void delay(uint i)
{
}
void main()
{
}
#pragma vector=6//端口B中断编号为4,4+2=6
__interrupt void EXIT_PORTB_IRQHander(void)
{
}
STM8外部中断按键控制 相关文章:
- STM8-利用外部中断编写一个按键控制灯的亮灭(11-24)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)