За простотой интерфейса “Дерева проекта” скрываются большие возмо;ности. Начнём изучать весь функционал, который заложил автор программы в эту часть программы.
Контроллер 1
Здесь показан выбранный нами контроллер.
Автонастройка Arduino IDE
Содержит три пункта
- Нет.
- По умолчанию.
- Собственные.
При выборе пункта Собственные, открывается окно диалога.
Выполнив все шаги мы можем понять на какой контроллер (тип, название и серия контроллера) настроено Arduino IDE . Или на 2 шаге, изменить настройки Arduino IDE.
Текущие преднастройки появятся в окне Автонастройки Arduino IDE.
Настройки контроллера
Содержит три пункта (или другие пункты в зависимости от типа контроллера):
- Опорное напряжение (Aref)
Позволяет использовать внутреннее или внешнее опорное напряжение.
- Защита от зависания
Может быть отключено или включено. При включении возможно выбрать время защиты от зависания. Надо понимать что защита от зависания программная.
При этом добавляется следующий код.
int _PWDC = 0;
void setup()
{
pinMode(4, INPUT);
pinMode(2, OUTPUT);
digitalWrite(2, 0);
TCCR2A = 0x00;
TCCR2B = 0x07;
TIMSK2=0x01;
TCNT2=100;
}
void loop()
{
_PWDC = 0;
//Плата:1
digitalWrite(2, (digitalRead (4)));
}
ISR(TIMER2_OVF_vect)
{
TCNT2=100;
if(_PWDC >= 500)
{
asm volatile ("jmp 0x0000");
}
else
{
_PWDC = _PWDC+1;
}
;
}
Дополнительная информация объясняющая работу от зависания
Параметры функции обработки прерываний ISR() в C
Для обработки прерываний в C мы используем функцию ISR(). В ней необходимо указать с каким прерыванием мы будем иметь дело. Далее перечислены все варианты параметра функции ISR() для микроконтроллеров ATmega328P:
- INT0_vect – внешнее прерывание 0
- INT1_vect – внешнее прерывание 1
- PCINT0_vect – прерывание по изменению состояния нулевой группы выводов
- PCINT1_vect – прерывание по изменению состояния первой группы выводов
- PCINT2_vect – прерывание по изменению состояния второй группы выводов
- WDT_vect – прерывание от сторожевого таймера
- TIMER2_COMPA_vect – прерывание от таймера/счетчика T2 при совпадении с A
- TIMER2_COMPB_vect – прерывание от таймера/счетчика T2 при совпадении с B
- TIMER2_OVF_vect – прерывание по переполнению таймера/счетчика T2
- TIMER1_CAPT_vect – прерывание от таймера/счетчика T1 по записи
- TIMER1_COMPA_vect – прерывание от таймера/счетчика T1 при совпадении с A
- TIMER1_COMPB_vect – прерывание от таймера/счетчика T1 при совпадении с B
- TIMER1_OVF_vect – прерывание по переполнению таймера/счетчика T1
- TIMER0_COMPA_vect – прерывание от таймера/счетчика T0 при совпадении с A
- TIMER0_COMPB_vect – прерывание от таймера/счетчика T0 при совпадении с B
- TIMER0_OVF_vect – прерывание по переполнению таймера/счетчика T0
- SPI_STC_vect – прерывание по окончанию передачи модуля SPI
- USART_RX_vect – прерыванию по окончанию приема модуля USART
- USART_UDRE_vect – прерывание по опустошению регистра данных модуля USART
- USART_TX_vect – прерывание по окончанию приема модуля USART
- ADC_vect – прерывание по завершению преобразования АЦП
- EE_READY_vect – прерывание по готовности памяти EEPROM
- ANALOG_COMP_vect – прерывание от аналогового компаратора
- TWI_vect – прерывание от модуля I2C (TWI)
- SPM_READY_vect – прерывание по готовности flash памяти
Функция обработки прерывания выглядит следующим образом:
…
ISR(INT0_vect)
{
//текст программы обработки прерывания
}
…
EEPROM
Управляет памятью. Используя внутреннюю память контроллера.
Либо присоединить внешнюю память.
При этом надо настроить Имя (необязательно), Размер в байтах, адрес (необходимо сканировать адрес в шине I2C.
При выборе контроллера типа ESP
Появляется раздел:
Настройка WiFi модуля
Имеющий три подраздела
- Точка доступа
Этот подраздел имеет множество настроек сети точки доступа.
- Клиент
Подраздел Клиент, имеет соответствующие настройки на стороне клиена.
- Пользовательские параметры
Добавляет параметр со своим именем и типом переменной.
Обновление прошивки по WiFi
Позволяет обновить прошивку контроллера.