3 Commits
Author SHA1 Message Date
Ogneyar 6b87753674 added a feature common to all interrupts 2024-12-04 09:52:06 +03:00
khristolyubov 979a5ea9ae fix for flashing on linux 2024-11-02 14:59:01 +07:00
klassents 2e8482323c Обновить README.md 2024-11-01 05:11:52 +03:00
3 changed files with 29 additions and 6 deletions

No files matched your search

+1 -1
View File
@@ -47,7 +47,7 @@
### Serial ### Serial
Для работы доступно два последовательных интерфейса. Нулевой интерфейс доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`. Нулевой интерфейс используется для вывода информации в Монитор порта в Arduino IDE. Для работы доступно два последовательных интерфейса. Нулевой интерфейс доступен на выводах D0, D1, для работы с ним используется экземпляр класса под названием `Serial`. Нулевой интерфейс используется для вывода информации в Монитор порта в Arduino IDE.
Первый интерфейс доступен на выводах D7, D8, используемый экземпляр класса - `Serial1`. Первый интерфейс доступен на выводах D7, D8, используемый экземпляр класса - `Serial1`.
Доступны следующие настройки режима работы каждого интерфейса: длина данных - 7 или 8 бит; бит четности - нет, четный, нечетный; стоп бит - 1 или 2 бита. Доступны следующие макросы для настройки режима работы каждого интерфейса в функции `Serial.begin()`: `SERIAL_7N1`, `SERIAL_8N1`, `SERIAL_7N2`, `SERIAL_8N2`, `SERIAL_7E1`, `SERIAL_8E1`, `SERIAL_7E2`, `SERIAL_8E2`, `SERIAL_7O1`, `SERIAL_8O1`, `SERIAL_7O2`, `SERIAL_8O2`. Здесь длина данных - 7 или 8 бит; бит четности - нет(N), четный(E), нечетный(O); стоп бит - 1 или 2 бита.
### Предупреждения об ошибках ### Предупреждения об ошибках
Если в скетче используется интерфейс `Serial`, при возникновении ошибок при использовании какой-либо функции из пакета в порт может передаваться сообщение об этой ошибке с пояснением. Например, если в функцию будет передан некорректный номер цифрового вывода, предупреждение об этом появится в подключенном com порту. Если в скетче используется интерфейс `Serial`, при возникновении ошибок при использовании какой-либо функции из пакета в порт может передаваться сообщение об этой ошибке с пояснением. Например, если в функцию будет передан некорректный номер цифрового вывода, предупреждение об этом появится в подключенном com порту.
+27 -5
View File
@@ -1,5 +1,5 @@
#include "mik32_hal_irq.h" #include "mik32_hal_irq.h"
#include "wiring_LL.h" #include "wiring_LL.h"
// isr functions // isr functions
extern void serial_interrupt_handler(uint8_t uartNumInt); extern void serial_interrupt_handler(uint8_t uartNumInt);
@@ -11,12 +11,34 @@ void __attribute__((weak)) wire_interrupt_handler(void)
} }
void __attribute__((weak)) servo_interrupt_handler(void) void __attribute__((weak)) servo_interrupt_handler(void)
{ {
// dummy function for case when wire library is not in use // dummy function for case when servo library is not in use
}
void __attribute__((weak)) ISR(void)
{
/* A dummy function for the case when additional interrupts are not used in the project.
In the project, you need to create a function of the form:
extern "C" void ISR(void)
{
// 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);
}
before that, be sure to connect the libraries:
#include "mik32_hal_timer16.h"
#include "mik32_hal_irq.h"
#include "wiring_LL.h" */
} }
// ---------------------------------------------- // // ---------------------------------------------- //
void __attribute__((noinline, section(".ram_text"), optimize("O3"))) trap_handler (void) void __attribute__((noinline, section(".ram_text"), optimize("O3"))) trap_handler (void)
{ {
// all interrupts
ISR();
// gpio interrupt // gpio interrupt
if (EPIC_CHECK_GPIO_IRQ()) if (EPIC_CHECK_GPIO_IRQ())
gpio_interrupt_handler(); gpio_interrupt_handler();
@@ -36,7 +58,7 @@ void __attribute__((noinline, section(".ram_text"), optimize("O3"))) trap_handle
// uart1 interrupt // uart1 interrupt
if (EPIC_CHECK_UART_1()) if (EPIC_CHECK_UART_1())
serial_interrupt_handler(1); serial_interrupt_handler(1);
// i2c interrupt // i2c interrupt
if (EPIC_CHECK_I2C_1()) if (EPIC_CHECK_I2C_1())
wire_interrupt_handler(); wire_interrupt_handler();
+1
View File
@@ -87,3 +87,4 @@ tools.mik32_upload.bootloader.params.quiet=
# For Sketch > Upload Using Programmer # For Sketch > Upload Using Programmer
tools.mik32_upload.program.pattern={path}/{cmd} {build.path}/{build.project_name}.hex --run-openocd --openocd-exec={runtime.tools.openocd.path}/bin/openocd{cmd.extension} --openocd-interface={path}/openocd-scripts/interface/ftdi/mikron-link.cfg --openocd-target={path}/openocd-scripts/target/mik32.cfg tools.mik32_upload.program.pattern={path}/{cmd} {build.path}/{build.project_name}.hex --run-openocd --openocd-exec={runtime.tools.openocd.path}/bin/openocd{cmd.extension} --openocd-interface={path}/openocd-scripts/interface/ftdi/mikron-link.cfg --openocd-target={path}/openocd-scripts/target/mik32.cfg
tools.mik32_upload.program.params.quiet=