Одинаково ли настраивается прерывание int0 на нано328 и promini 168?

MaksVV
Offline
Зарегистрирован: 06.08.2015

Скетч измерения частоты почемуто работает на нано328, но НЕ работает на про мини 168.  

Конкретно не вызываются прерывания. 

Есть отличия у этих плат в плане внешнего прерывания?


int Freq;
bool flag=1;
volatile unsigned long t1;
volatile unsigned long t2;

void tic (){
  

  if (flag) {t1=micros(); flag=0;}
  else      {t2=micros(); flag=1;}
   
  }

void setup()
{

attachInterrupt (0, tic, FALLING);

pinMode (2,INPUT);
digitalWrite (2,HIGH);

}

void loop()
{

  if (flag) Freq=1008000/(t2-t1);

}

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

ну ктонить помогите, плиз настроить int0 на атмеге 168.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Че не делал - не работает int 0 (на 2 пин ардуино) на атмеге 168. попробовал прерывание int1 на 3 пин ардуино - заработало. 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

MaksVV пишет:

Одинаково ли настраивается прерывание int0 на нано328 и promini 168?

Одинаково. Разница между Атмега168 и Атмега328 в количестве флеш памяти.

MaksVV пишет:

Че не делал - не работает int 0 (на 2 пин ардуино) на атмеге 168. попробовал прерывание int1 на 3 пин ардуино - заработало. 

Пин 2 вообще рабочий? На вход/выход работает?

P.S. Переменную flag тоже надо бы объявить с квалификатором volatile, т.к. изменяется в обработчике прерывания.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Jeka_M пишет:

 

Пин 2 вообще рабочий? На вход/выход работает?

 

да короче хз, может действительно непропай китайский, не проверял по-моему. Вообщем на int1 устройство собрал, работает уже. 

Jeka_M пишет:

P.S. Переменную flag тоже надо бы объявить с квалификатором volatile, т.к. изменяется в обработчике прерывания.

точно, поправлю.