Input Capture Mode ATmega32

 avatar
subratasarkar20
c_cpp
13 days ago
665 B
4
Indexable
Never
/*
 * InputCaptureMode.cpp
 *
 * Created: 27-09-2024 11:33:52
 * Author : subrs
 */ 
#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/interrupt.h>

volatile uint16_t pulse_time = 0;

int main ()
{	
	DDRD &= ~(1 << PD6);							// Set the ICP1 pin to input mode 
	DDRB |= (1<<PINB0);								// Set PB0 as output to reflect the input from 
	TCCR1A = 0;
	TCCR1B |= (1 << ICES1) | (1 << CS10);			// Rising edge, no prescaler
	TIMSK |= (1 << TICIE1);							// Enable input capture interrupt
	
	sei();
	
	while (1);
	{
		
	}
}

ISR(TIMER1_CAPT_vect) 
{	
	pulse_time = ICR1;								// Read the ICR1 value (the time of the captured event)
	PORTB ^= (1 << PINB0);
}
Leave a Comment