«

»

Jul 18

Blinking LED dengan Overflow Interrupt

Berikut adalah sebuah contoh program untuk membuat sebuah LED pada board NS.One berkedip dengan frekuensi 2 Hz, dengan menggunakan overflow interrupt TIMER1.

NS.One adalah board mikrokontroler berbasis AVR ATmega32 yang dikembangkan oleh tim riset NEXT SYSTEM Robotics Learning Center Bandung, dengan merujuk pada platform Arduino.

void setup()
{
  bitSet(DDRC,PC5);      // PC5 as output
  // initialize timer1 
  noInterrupts();        // disable all interrupts
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 34286;
  bitSet(TCCR1B,CS12);   // 256 prescaler 
  bitSet(TIMSK,TOIE1A);  // enable timer overflow interrupt
  interrupts();          // enable all interrupts
}

ISR(TIMER1_OVF_vect)     // timer compare interrupt service routine
{
  bitWrite(PORTC,PC5,!bitRead(PORTC,PC5));   // toggle LED
  TCNT1 = 34286;            // reload timer
}

void loop()
{
  // your program here...
}

Contoh program di atas adalah satu contoh yang diangkat dalam kelas pelatihan Pemrograman Mikrokontroler AVR dengan Bahasa C yang diadakan di NEXT SYSTEM Robotics Learning Center | ITC Kosambi Ruko F2 | Baranang Siang 6-8, Bandung 40112 | (022) 4222062, (022) 70775874 | web: edukasi.nextsys.web.id | email: info@nextsys.web.id