⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csb.c

📁 该代码实现LPC2132平台下的超声波测距功能
💻 C
字号:
#include "CSB.h"
#include "LPC213x.h"
#include "SPI/SPI.h"
  uint32 m_length=0; 
  uint32 temp0=0,temp1=0;


   void Timer1_CapInt(void)   __irq
{
	   T0IR = 1 << 4;	
 	 	temp1=T0CR0;
       //	EXTINT = 0x08;	
		VICVectAddr = 0x00;		
	//	VICIntEnClr=1<<17;

        Length_CAL();	 	 
}
  void  ENTinit(void)
{
   /*PINSEL1 |=1<<29;		 //P0.30   EINT3
   EXTMODE=0x08;		  //跳沿触发
   EXTPOLAR=0x08;	  //上跳沿触发
   VICIntSelect   = 0x00000000;	//设置所有中断分配为IRQ中断		   
   VICVectCntl0   = 0x20 | 17;	//分配外部中断3到向量中断0				
	VICVectAddr0  = (unsigned  int)Eint3_IRQ;// 设置中断服务程序地址					
	EXTINT         = 0x08;			//清除EINT0中断标志		  
    */ 
	PINSEL1 |=11<<28;
	VICIntSelect = 0x00000000;				// 设置所有的通道为IRQ中断
	VICVectCntl0 = 0x20 | 4;				// Timer1分配到IRQ slot0,即最高优先级
	VICVectAddr0 = (uint32)Timer1_CapInt;	// 设置Timer1向量地址
	VICIntEnable = 1 << 4;					// 使能Timer1中断
	
}
void Time1init(void)	{
	/*T1TC=0;				//定时器设置为0	,16位定时器
	T1PR = 99999;	   		// 设置定时器分频为10000分频,得600000
	T1MCR = 0x03;		// 设置T0MR0匹配后复位T0TC,并产生中断标志
	T1MR0 = 6000/2;	// 设置0.5s匹配值		 
	*/
	T0PR  = 9;								// 分频系数
	T0CCR = (1 << 1)|						// 设置CAP1.2下降沿捕获
			(1 << 2);						// 允许产生中断
			
 	
	}
/**********************************
********
***利用GPIO功能输出四个脉冲
*******
*********************************/

 void CSB_init(void)
 {
    Time1init();
	 IO0DIR |=1<<21	;
    ENTinit();

 
 }
 void Length_CAL(void)
 {
    m_length=((temp1)*340)/3000;
	m_length=m_length;
 }

void  TimeDelay()
{
   int i;
   for(i=100;i>0;i--) ; ///25KHZ
}
void  CSB_PWM_OUT()
{
	     IO0SET |=1<<21;
	 TimeDelay();
	 	 IO0CLR |=1<<21;
	 TimeDelay();
	 	 IO0SET |=1<<21;
	 TimeDelay();
	 	 IO0CLR |=1<<21;
	 TimeDelay();
	 	 IO0SET |=1<<21;
	 TimeDelay();
	 	 IO0CLR |=1<<21;
	 TimeDelay();
	 	 IO0SET |=1<<21;
	 TimeDelay();
	 	 IO0CLR |=1<<21;
	 TimeDelay();
}
void CSB_START(void)
 {
	 		
		    T0TC=0;
		    CSB_PWM_OUT();				   //启动超声波
			//VICIntEnable=1<<17;		      //使能外部中断
			VICIntEnable = 1 << 4;					// 使能Timer1中断
   			T0TCR = 0x2;		// 启动并复位T0TC
			T0TCR=0x01;
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -