[ create a new paste ] login | about

Link: http://codepad.org/pRnYwgFC    [ raw code | output | fork ]

C++, pasted on Oct 15:
//Обработка прерываний через порты int1 int2
#include <mega8.h>
#include <delay.h>

//Прерывание_________________________________________________________________________________________________________

interrupt(2) void ExtInt0(void); //   Обработка прерываний на рорте Int0 (порт PD2, Вывод 4)
    {
      PORTC=0b1;    delay_ms(200);
      PORTC=0b10;   delay_ms(200);
     
    }


interrupt(3) void ExtInt1(void); //   Обработка прерываний на рорте Int1 (порт PD3, Вывод 5)
    {
      PORTC=0b100000;  delay_ms(200);
      PORTC=0b010000;  delay_ms(200);
     
    }





//Настройка портов и регистров________________________________________________________________________

void main(void)
{

DDRC=0b1111111; //Все порты С сконфигурированы как выходы

DDRD=0b11110011; //Вне порты кроме PD2 и PD3 выходы (2 и 3 это прерывания)

delay_ms(10); // задержка нужна для зарядки антидребезгого конденсатора для правельной работы


GICR=0b11000000; /* Регистр eneral Interrupt Control Register разрешает внешнее прерывание
10 000000 - по выводу int1
01 000000 - по выводу int0
11 000000 - по всем выводам */

MCUCR=0b00001111; /* Регистр Micro Controller Unit Control Registr настраиваетпрерывания на срабатывание:

      int1  int0
 0000  10    10 - по спадающему фронту сигнала на выводе  
 0000  11    11 - по нарастающему фронту
 0000  00    00 - по низкому уровню сигнала
 0000  01    01 - по любому игменению уровня сигнала */
 
#asm("sei") // или SREG=(1<<7); Status Register разрешает общее прерывание

//Основная программа___________________________________________________________________________________________
    while(1)
    {
      PORTC=0b1;      delay_ms(50);
      PORTC=0b10;     delay_ms(50);
      PORTC=0b100;    delay_ms(50);
      PORTC=0b1000;   delay_ms(50);
      PORTC=0b10000;  delay_ms(50);
      PORTC=0b0100000;delay_ms(50);
      PORTC=0b10000;  delay_ms(50);
      PORTC=0b1000;   delay_ms(50); 
      PORTC=0b100;    delay_ms(50);
      PORTC=0b10;     delay_ms(50);
      PORTC=0b1;      delay_ms(50);
     
    }
}


Output:
Line 18: error: mega8.h: No such file or directory
Line 18: error: delay.h: No such file or directory
Line 12: error: invalid suffix "b1" on integer constant
Line 12: error: invalid suffix "b10" on integer constant
Line 12: error: invalid suffix "b100000" on integer constant
Line 12: error: invalid suffix "b010000" on integer constant
Line 5: error: invalid suffix "b1111111" on integer constant
Line 5: error: invalid suffix "b11110011" on integer constant
Line 5: error: invalid suffix "b11000000" on integer constant
Line 6: error: invalid suffix "b00001111" on integer constant
Line 1: error: invalid preprocessing directive #asm
Line 12: error: invalid suffix "b1" on integer constant
Line 12: error: invalid suffix "b10" on integer constant
Line 12: error: invalid suffix "b100" on integer constant
Line 12: error: invalid suffix "b1000" on integer constant
Line 12: error: invalid suffix "b10000" on integer constant
Line 12: error: invalid suffix "b0100000" on integer constant
Line 12: error: invalid suffix "b10000" on integer constant
Line 12: error: invalid suffix "b1000" on integer constant
Line 12: error: invalid suffix "b100" on integer constant
Line 12: error: invalid suffix "b10" on integer constant
Line 12: error: invalid suffix "b1" on integer constant
Line 7: error: expected constructor, destructor, or type conversion before '(' token
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: