DSP28335外部中断、HC_SR501红外识别传感器\YH_LDR光敏传感器

F28335总共支持7个外部中断XINT1~XINT7、XINT13,还有一个不可屏蔽的外部中断XNMI中断源。每一个外部中断的触发可以设置为上升沿触发或下降沿触发。其中XINT1~XINT2只能对GPIO0~GPIO31配置,XINT3~XINT7只能对GPIO32~GPIO63配置,使用方法是一样的

HC_SR501红外识别传感器和YH_LDR光敏传感器在外部中断的程序中使用的方式相同

野火手册中的红外识别图片

野火手册中的光敏传感器图片

#include "hc_sr501.h"


void main()
{
	InitSysCtrl();

	InitPieCtrl();
	IER=0x00;
	IFR=0x00;
	InitPieVectTable();

	EXTI2_Init();
	LED_Init();

	while(1)
	{

	}
}
#include "hc_sr501.h"
Uint16 i=0;

void EXTI2_Init(void)
{
	EALLOW;
	SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;    // GPIO input clock
	EDIS;

	EALLOW;
	//信号输入端口配置
	GpioCtrlRegs.GPAMUX1.bit.GPIO13=0;//通用
	GpioCtrlRegs.GPADIR.bit.GPIO13=0;//输入
	GpioCtrlRegs.GPAPUD.bit.GPIO13=0;
	GpioCtrlRegs.GPAQSEL1.bit.GPIO13 = 2;        // 外部中断2(XINT2)输入限定6个采样窗口
	GpioCtrlRegs.GPACTRL.bit.QUALPRD1 = 0xFF;   // 每个采样窗口的周期为510*SYSCLKOUT


	EDIS;

	EALLOW;
	GpioIntRegs.GPIOXINT2SEL.bit.GPIOSEL = 13;   // XINT2是GPIO13
	EDIS;

	EALLOW;	// 修改被保护的寄存器,修改前应添加EALLOW语句
	PieVectTable.XINT2 = &EXTI2_IRQn;
	EDIS;   // EDIS的意思是不允许修改被保护的寄存器

	PieCtrlRegs.PIEIER1.bit.INTx5 = 1;          // 使能PIE组1的INT5

	XIntruptRegs.XINT2CR.bit.POLARITY = 1;      // 上升沿触发中断
	XIntruptRegs.XINT2CR.bit.ENABLE = 1;        // 使能XINT2

	IER |= M_INT1;                              // 使能CPU中断1(INT1)
	EINT;                                       // 开全局中断
	ERTM;
}

interrupt void EXTI2_IRQn(void)
{
	i++;
	GpioDataRegs.GPCTOGGLE.bit.GPIO68=1;//设置GPIO输出翻转信号
	DELAY_US(500000);
	PieCtrlRegs.PIEACK.bit.ACK1=1;
}

void LED_Init(void)
{
	EALLOW;//关闭写保护
	SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;    // 开启GPIO时钟

	//LED1端口配置
	GpioCtrlRegs.GPCMUX1.bit.GPIO68=0;//设置为通用GPIO功能
	GpioCtrlRegs.GPCDIR.bit.GPIO68=1;//设置GPIO方向为输出
	GpioCtrlRegs.GPCPUD.bit.GPIO68=0;//使能GPIO上拉电阻

	GpioDataRegs.GPCSET.bit.GPIO68=1;//设置GPIO输出高电平

	EDIS;//开启写保护
}
#ifndef HC_SR501_H_
#define HC_SR501_H_

#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"

void EXTI2_Init(void);
interrupt void EXTI2_IRQn(void);
void LED_Init(void);

#endif /* HC_SR501_H_ */

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值