forked from Elron_dev/elbear_arduino_bsp
v0.5.0
- добавлена поддержка платы ELBEAR ACE-NANO; - добавлена поддержка плат ELSOMIK OEM и SE; - добавлена возможность работы в режиме отладки для всех плат, входящих в состав пакета. Доступно для версии ArduinoIDE 2 и выше; - добавлена поддержка библиотеки FreeRTOS; - добавлена поддержка библиотеки IRremote; - добавлена поддержка библиотеки OneWire; - добавлена поддержка аппаратного I2C0 для плат START-MIK32 и ELSOMIK. Для работы с ним доступен экземпляр класса Wire1; - добавлена поддержка аппаратного SPI0 для всех плат, входящих в пакет. Для работы с ним доступен экземпляр класса SPI1; - увеличено быстродействие функций digitalWrite, digitalRead; - исправлены известные ошибки. Co-authored-by: KlassenTS <klassen@elron.tech> Co-committed-by: KlassenTS <klassen@elron.tech>
This commit is contained in:
1 parent
de1f0d7fda
commit
1c8e06634c
211 files changed
+97525
-591
No files matched your search
@@ -5,7 +5,7 @@
|
||||
extern void serial_interrupt_handler(uint8_t uartNumInt);
|
||||
extern void gpio_interrupt_handler(void);
|
||||
extern void tone_interrupt_handler(void);
|
||||
void __attribute__((weak)) wire_interrupt_handler(void)
|
||||
void __attribute__((weak)) wire_interrupt_handler(uint8_t num)
|
||||
{
|
||||
// dummy function for case when wire library is not in use
|
||||
}
|
||||
@@ -13,6 +13,10 @@ void __attribute__((weak)) servo_interrupt_handler(void)
|
||||
{
|
||||
// dummy function for case when servo library is not in use
|
||||
}
|
||||
void __attribute__((weak)) IRremote_interrupt_handler(void)
|
||||
{
|
||||
// dummy function for case when IRremote library is not in use
|
||||
}
|
||||
|
||||
void __attribute__((weak)) ISR(void)
|
||||
{
|
||||
@@ -21,13 +25,16 @@ void __attribute__((weak)) ISR(void)
|
||||
In the project, you need to create a function of the form:
|
||||
extern "C" void ISR()
|
||||
{
|
||||
// timer16 is taken as an example
|
||||
if (TIM16_GET_ARRM_INT_STATUS(htimer16_1_))
|
||||
if (EPIC_CHECK_TIMER16_1())
|
||||
{
|
||||
// necessary actions
|
||||
// timer16 is taken as an example
|
||||
if (TIM16_GET_ARRM_INT_STATUS(htimer16_1_))
|
||||
{
|
||||
// necessary actions
|
||||
}
|
||||
// reset timer interrupt flags
|
||||
TIM16_CLEAR_INT_MASK(htimer16_1_, 0xFFFFFFFF);
|
||||
}
|
||||
// reset timer interrupt flags
|
||||
TIM16_CLEAR_INT_MASK(htimer16_1_, 0xFFFFFFFF);
|
||||
}
|
||||
libraries required to use this example:
|
||||
#include "mik32_hal_timer16.h"
|
||||
@@ -46,6 +53,10 @@ void __attribute__((noinline, section(".ram_text"), optimize("O3"))) trap_handle
|
||||
if (EPIC_CHECK_GPIO_IRQ())
|
||||
gpio_interrupt_handler();
|
||||
|
||||
// IRremote timer interrupt
|
||||
if (EPIC_CHECK_TIMER16_0())
|
||||
IRremote_interrupt_handler();
|
||||
|
||||
// tone timer interrupt
|
||||
if (EPIC_CHECK_TIMER16_1())
|
||||
tone_interrupt_handler();
|
||||
@@ -62,9 +73,12 @@ void __attribute__((noinline, section(".ram_text"), optimize("O3"))) trap_handle
|
||||
if (EPIC_CHECK_UART_1())
|
||||
serial_interrupt_handler(1);
|
||||
|
||||
// i2c interrupt
|
||||
// i2c0 interrupt
|
||||
if (EPIC_CHECK_I2C_0())
|
||||
wire_interrupt_handler(0);
|
||||
|
||||
if (EPIC_CHECK_I2C_1())
|
||||
wire_interrupt_handler();
|
||||
wire_interrupt_handler(1);
|
||||
|
||||
// reset all interrupts
|
||||
EPIC_CLEAR_ALL();
|
||||
|
||||
Reference in new issue
Block a user