Hello everyone.
I am a Korean. I am interested in radar system.
I made Radar system. However, I encounter the serious problems.
If I start the below source code, it always have speed 60 Hz, Speed 840[m/s]
I am thinkg about this problems. In my opinion, whenever the counter happened, freq is not zero.
So freq has always 1.
If you have any solution, please help me.
=====================================
X-tal : 8000000 Hz
TICK_CNT // 255-(8000000/1024/60) = 126
The interrupt has happened 60 times / 1 seconds
Code============================================
static unsigned int freq = 0;
static double speed = 0;
// timer0 : 8bit as timer
// timer1 : 16bit as counter
#pragma vector = TIMER0_OVF_vect //off time
__interrupt void Timer0_Interrupt(void)
{
freq = TCNT1; // edge clock count
TCNT1 = 0; // edge clock counter init.
TCNT0 = 0x1C; // Timer init
if(T2_Timer > 0) T2_Timer--; // Use external Timer
}
#pragma vector = TIMER1_OVF_vect //counter
__interrupt void Timer1_Interrupt(void)
{
}
void main( void )
{
System_init();
Delay_ms(100);
Radar_Pulse_Enable();
Delay_ms(10);
TCNT1 = 0;
TIMSK = 0x05;
while(1)
{
if(freq > 0) // when the radar detect any product
{
Radar_Pulse_Disable();
freq = freq60; // 60 interrupta per seconds
speed = freq0.014; // unit [m/s]
UART_String_Transmit(" Freq : ");
Tx_HOST_Printf("%d[Hz]",freq);
UART_String_Transmit(" Speed : ");
Tx_HOST_Printf("%0.3lf[m/s]", speed);
Tx_HOST_Char(LF);
Tx_HOST_Char(CR);
memset(Printf_Buff, 0, PRINT_BUF_SIZE);
memset(com1_rx_data, 0, RX_BUF_LENGTH);
freq = 0; //reset
Radar_Pulse_Enable();
}
}
}
==============================================