Урок 3.3: Обрабатываем внешние сигналы с помощью прерываний

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск

interrupt_processing.c: <source lang="c">

  1. include <avr/io.h>

ISR( INT0_vect ) {

  PORTD |= ( 1 << PD4 );

}

ISR( INT1_vect ) {

  PORTD &=~( 1 << PD4 );

}

int main( void ) {

  DDRD &=~ ( 1 << PD2 ) | ( 1 << PD3 );
  PORTD |= ( 1 << PD2 ) | ( 1 << PD3 ) | ( 1 << PD4 );
  
  DDRD |= ( 1 << PD4 );
  
  MCUCR = 0;
  GICR |= ( 1 << INT0 ) | ( 1 << INT1 );
  
  sei();
  
  while( 1 );
   
  return 0;

}</source>