Hi people. Me and other three friends are working for a contest and we try to program a ultrasound sensor, but we have some problems.
CODE:
#define PART_LM4F120H5QR 1
#include "lm4f120h5qr.h"
#include <stdbool.h>
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/timer.h"
#include "driverlib/pin_map.h"
#include "driverlib/uart.h"
#include "driverlib/interrupt.h"
double distance=0;
long val_Wtimer2=0;
bool flag_sensor=0;
void WTimer2IntHandler(void)
{
TimerIntClear(WTIMER2_BASE,TIMER_CAPA_EVENT);
val_Wtimer2 = TimerValueGet(WTIMER2_BASE,TIMER_A);
flag_senzor=1;
TimerDisable(WTIMER2_BASE,TIMER_CAPA_EVENT);
}
inline void sent_Trigger()
{
GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_4, 0xFF);
TimerEnable(WTIMER2_BASE,TIMER_A);
SysCtlDelay(20);
GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_4, 0x00);
}
void init_WTimer2()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_WTIMER2);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
GPIOPinConfigure(GPIO_PD0_WT2CCP0);
GPIOPinTypeTimer(GPIO_PORTD_BASE,GPIO_PIN_0);
TimerConfigure(WTIMER2_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_CAP_TIME_UP); //////
TimerControlEvent(WTIMER2_BASE,TIMER_A,TIMER_EVENT_POS_EDGE);
TimerIntRegister(WTIMER2_BASE,TIMER_A,WTimer2IntHandler);
TimerIntEnable(WTIMER2_BASE,TIMER_CAPA_EVENT);
//IntEnable()
}
void main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 );
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, 0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PIN_4);
GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_4, 0);
init_WTimer2();
IntMasterEnable();
while(1)
{
if(flag_sensor)
{
distance=((val_Wtimer2 * 0.0000000125 ) * 341.0)/2.0;
flag_sensor=0;
}
SysCtlDelay(40000000);
sent_Trigger();
}
}
the problem is that the val_Wtimer2 give to us some strange values.
Can samebody help me and my friends too?