attiny13 ругается на прикрепление прерывания

holl
Offline
Зарегистрирован: 01.02.2019
volatile int state = LOW;
volatile int s=0;

void setup() {
              pinMode(0, OUTPUT);
              pinMode(1, INPUT);
              pinMode(2, OUTPUT);
              pinMode(3, OUTPUT);
              pinMode(4, OUTPUT);             
              digitalWrite(0, LOW);              
              digitalWrite(2, LOW);
              digitalWrite(3, LOW);              
              digitalWrite(4, LOW);
              attachInterrupt(0, comp, RISING);
             }
void comp() {
              digitalWrite(2, HIGH);
              //delayMicroseconds( 100);
              state=digitalRead(1);
              digitalWrite(2, LOW);
              if(state==HIGH)
                   {
                   digitalWrite(4, HIGH);
                   digitalWrite(3, HIGH);
                   }
              else 
                   {
                    digitalWrite(4, LOW);
                    digitalWrite(3, LOW);
                   }        
            }

void loop() {
                  while (s < 2)
                        {
                         digitalWrite(0, HIGH);
                         digitalWrite(0, LOW);
                         digitalWrite(3, HIGH);
                         delay (500);
                         digitalWrite(3, LOW);
                         delay (500);
                         s++;
                         }
                         digitalWrite(0, HIGH);
                         digitalWrite(0, LOW);                        
                         s=0;
             }
                  
  

 

holl
Offline
Зарегистрирован: 01.02.2019

добрый день специалисты. подскажите почему ide ругается для attiny13?

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Ну а текст ругани предлагается угадать? )

__Alexander
Offline
Зарегистрирован: 24.10.2012

Мой хрустальный шар говорит что это скорее всего, что при аттачивании прерывание comp оно о нем ничего не знает, т.к. оно находится ниже. Угадал мой шар?

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

__Alexander В Arduino IDE это не важно.

holl
Offline
Зарегистрирован: 01.02.2019

v258 пишет:
Ну а текст ругани предлагается угадать? )

'attachInterrupt' was not declared in this scope

Green
Offline
Зарегистрирован: 01.10.2015

Сменить аддон.

holl
Offline
Зарегистрирован: 01.02.2019

Green пишет:

Сменить аддон.

поставить другую библиотеку для attiny13?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Green пишет:

Сменить аддон.

на microCore, там всё пучком:
 

Скетч использует 404 байт (39%) памяти устройства. Всего доступно 1024 байт.
Глобальные переменные используют 10 байт (15%) динамической памяти, оставляя 54 байт для локальных переменных. Максимум: 64 байт.

 

mir0tv0rec
Offline
Зарегистрирован: 19.09.2018
ISR(PCINT0_vect){

// тут, что нужно сделать в прерывании

}// ISR(INT0_vect)

// где-нибудь в setup
GIMSK |= (1 << PCIE);     // включаем прерывания по кнопке
sei();    // разрешаем глобально прерывания

Так делал обработку кнопки - все работает. Только в регистре MCUCR нужно настроить от чего срабатывать

ISC01 ISC00 Description
0        0        The low level of INT0 generates an interrupt request.
0        1        Any logical change on INT0 generates an interrupt request.
1        0        The falling edge of INT0 generates an interrupt request.
1        1        The rising edge of INT0 generates an interrupt request.

 

holl
Offline
Зарегистрирован: 01.02.2019

ua6em пишет:

Green пишет:

Сменить аддон.

на microCore, там всё пучком:
 

Скетч использует 404 байт (39%) памяти устройства. Всего доступно 1024 байт.
Глобальные переменные используют 10 байт (15%) динамической памяти, оставляя 54 байт для локальных переменных. Максимум: 64 байт.

 

как это поставить? скинь пожалуйста ссылку на эту инфу, спасибо!!!

holl
Offline
Зарегистрирован: 01.02.2019

mir0tv0rec пишет:

ISR(PCINT0_vect){

// тут, что нужно сделать в прерывании

}// ISR(INT0_vect)

// где-нибудь в setup
GIMSK |= (1 << PCIE);     // включаем прерывания по кнопке
sei();    // разрешаем глобально прерывания

Так делал обработку кнопки - все работает. Только в регистре MCUCR нужно настроить от чего срабатывать

ISC01 ISC00 Description
0        0        The low level of INT0 generates an interrupt request.
0        1        Any logical change on INT0 generates an interrupt request.
1        0        The falling edge of INT0 generates an interrupt request.
1        1        The rising edge of INT0 generates an interrupt request.

 

жаль, но я не силен в обращениях к регистрам((

mir0tv0rec
Offline
Зарегистрирован: 19.09.2018

Попробуй тогда перенести обработчик comp() выше setup или ниже loop, у меня было, что IDE ругалась на отсутствующую функцию.

Ну и Arduino IDE не полностью дружит с 13 тинькой.

holl
Offline
Зарегистрирован: 01.02.2019

mir0tv0rec пишет:

Попробуй тогда перенести обработчик comp() выше setup или ниже loop, у меня было, что IDE ругалась на отсутствующую функцию.

Ну и Arduino IDE не полностью дружит с 13 тинькой.

все так же

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018
mir0tv0rec
Offline
Зарегистрирован: 19.09.2018

Это точно, а microCore установлен вообще?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

holl пишет:

ua6em пишет:

Green пишет:

Сменить аддон.

на microCore, там всё пучком:
 

Скетч использует 404 байт (39%) памяти устройства. Всего доступно 1024 байт.
Глобальные переменные используют 10 байт (15%) динамической памяти, оставляя 54 байт для локальных переменных. Максимум: 64 байт.

 

как это поставить? скинь пожалуйста ссылку на эту инфу, спасибо!!!

вот так

mir0tv0rec
Offline
Зарегистрирован: 19.09.2018

Заходишь в "Файл-> Настройки-> Дополнительные ссылки для Менеджера плат"

Вбиваешь туда: https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json

Дальше - инструменты -> менеджер плат. В поиске вбиваешь tiny13 и устанавливаешь.

holl
Offline
Зарегистрирован: 01.02.2019

Green пишет:

Сменить аддон.

Спасибо, заменил и все ок. Поставил MicroCore

holl
Offline
Зарегистрирован: 01.02.2019

mir0tv0rec пишет:

Заходишь в "Файл-> Настройки-> Дополнительные ссылки для Менеджера плат"

Вбиваешь туда: https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json

Дальше - инструменты -> менеджер плат. В поиске вбиваешь tiny13 и устанавливаешь.

Спасибо!!!

holl
Offline
Зарегистрирован: 01.02.2019

А как удалить старый Аддон?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

holl пишет:

А как удалить старый Аддон?

удалить папку с аддоном

holl
Offline
Зарегистрирован: 01.02.2019

удалил старый,установил новых парочку (MicroCore и DIY Attiny), но как то странно. Новых аддонов там же не появилось. Хотя в IDE в перечне плат появились новые. Прочесал все пути и не смог найти новых. Подскажите куда они могли установиться? 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

В папке packages

holl
Offline
Зарегистрирован: 01.02.2019

Komandir пишет:

В папке packages

спасибо, нашел