Arduino. Урок 5. INTERRUPT. Внешние прерывания. External Interrupt.

preview_player
Показать описание
Arduino. Урок 5. Работа с регистрами внешних прерываний. External interrupts.
Рекомендации по теме
Комментарии
Автор

Это очень полезно, знакомимся и обучаемся

АзаДавлетгалиева
Автор

как свами связаться? нужна ваша помощь

gnireenigne
Автор

Вы начали неплохо. Но я не понял для кого этот урок, для новичков или опытных. Если для опытных, то слишком скомкано, для новичков такая подача не пойдет.
Желаю вам успехов

КамильМуслимович
Автор

Красавица, входы от кнопок можно подтянуть к плюсу средствами Atmega
Вместо Arduino рекомендую использовать Atmel Studio, хотя бы версии 6
функцию прерывания, в данном случае лучше так:
ISR(INT0_vect, ISR_NAKED){ // пустая функция
//не нужно "пушить" например: asm("PUSH R24"); регистры, не используем
asm("SBIS 0x38, 5"); // адрес порта(PORTB - 0x38) есть в студии
// инструкция не меняет флаги, не сохраняем регистр статуса asm("IN R24, __SREG__"); или asm("IN R24, 0x3F"); asm("PUSH R24");
asm("RETI"); // иначе дальше побежит
}
по мне удобнee вместо
pinMode(13, OUTPUT);

DDRD |= BIT5; // можнo пачкой DDRB |= BIT0 | BIT5 | BIT7;
вместо
digitalWrite();
DDRB |= BIT5;
нужно добавить в начале файла
#define BIT0 1
#define BIT1 2
#define BIT2 4
#define BIT3 8
#define BIT4 16
#define BIT5 32
#define BIT6 64
#define BIT7 128

marsm