নিচের কোডটির সাহায্যে আমরা ১.৫ মিলি সেকেন্ড ডিলে তৈরী করতে পারি । আমরা এখানে ১৬ বিট টাইমার ব্যবহার করেছি। ১.৫ মিলিসেকেন্ড ডিলে করার জন্যে আমাদের OCR1A রেজিস্টারের ভ্যালু  ৪৬৮৭৫ সেট করতে হবে।

 

/*

 * Timer 16bit.c

 *

 * Created: 7/24/2018 7:55:11 PM

 * Author : MD MASUM BILLAH

 */

 

#define F_CPU 8000000UL

#include <avr/io.h>

#include <avr/interrupt.h>

 

int counter = 0;

 

void timer_1_init(void)

{

            TCCR1B &= ~(1<<CS10);

            TCCR1B &= ~(1<<CS11);

            TCCR1B |= (1<<CS12);

           

            TCCR1B &= ~(1<<WGM10);

            TCCR1B &= ~(1<<WGM11);

            TCCR1B &= ~(1<<WGM12);

            TCCR1B &= ~(1<<WGM13);

           

            TIMSK |= (1<<OCIE1A);

            TCNT1 =0;

           

            OCR1A =46875; // for 1.5ms delay

            sei();

}

 

ISR(TIMER1_COMPA_vect)

{

            PORTC ^= (1<<0);

            TCNT1 =0;

}

 

int main(void)

{

            timer_1_init();

            DDRC |=(1<<0);

 

while (1)

{

}

            return 0;

}