请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28027 Thread 中讨论的其他器件:controlSUITE
工具/软件:Code Composer Studio
我已经使用 GPIO 和延迟功能生成了一个5us 的脉冲。 我不知道在回波为高电平时如何启动 CPU 定时器计数器。
//include 文件:
#include "DSP2802x_Device.h"//DR
#include "DSP2802x_DefaultIsr.h"//DR
#include "ELEX7820-urf-GlobalUserDefs.h"//DR
EXTERN void DelayU(UINT16);
//---
中断空 TINT1_ISR (void)// 0x000D1A TINT1 - CPU 定时器1
{
//接下来的两行仅用于调试-插入 ISR 后删除
//asm (" ESTOP0"); //仿真器停止指令
//while (1);
CpuTimer1Regs.TCR.bit.TIF = 1;//清除中断标志 JL
//接收来自传感器的信号
EALLOW;
GpioCtrlRegs.GPADIR.bit.GPIO16=1; // 1=输出,0=输入
GpioDataRegs.GPACLEAR.bit.GPIO16=1;//如果->最初设置为低电平、则取消注释
DelayU (mSec2/1000);
GpioDataRegs.GPASET.bit.GPIO16=1; //取消注释 if ->初始设置为高电平
DelayU (mSec0_5/100);
GpioDataRegs.GPACLEAR.bit.GPIO16=1;//如果->最初设置为低电平、则取消注释
GpioCtrlRegs.GPADIR.bit.GPIO16=0; // 1=输出,0=输入
if (GpioDataRegs.GPASET.BIT.GPIO16){GpioDataRegs.GPASET.BIT.GPIO16 = 1;}
//start = StartCpuTimer1();
if (GpioDataRegs.GPACLEAR.bit.GPIO16){GpioDataRegs.GPACLEAR.bit.GPIO16 = 1;}
//stop = StopCpuTimer1();
EDIS;
//dist_reading =停止-开始;
}