входит в прерывание не по условию,что за фигня ?

Нет ответов
selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

atmega328p

attachInterrupt(0,sens,FALLING);

заходит в обработчик всегда если  на входе  +5v

в коде есть  delay и  Serial.print

Они как-то  влияют на  флаги ?

У меня такое ощущение что где-то происходит сброс флагов прерывания,а потом   вновь считывание и установка.

 

void setup() 
  {    
  
  Serial.begin(9600);
     DDRB=B00100000; 
     DDRC=B00001111; 
     PORTC=255;

   attachInterrupt(0,sens,FALLING); //подключить прерывание на 2 пин при повышении сигнала
  }

// the loop routine runs over and over again forever:
void loop()

 { 
   if (razn<10000)start=0;
      else start=1 ;
   if (start)
   {
     timeout=micros();
   //  if ((timeout-vrema) > 20000000) razn=100000000;
    delay(1000);     // wait for a second
      Serial.print("micrs: ");
.....
 void sens()
    {
      	razn=(micros()-vrema);  //расчет
          vrema =(micros());
         start=1 ;
          
    }