Добавлена библиотека softSerial. Общий обработчик прерываний, а также некоторые обработчики прерываний конкретных модулей перенесены в память ram

- добавлена библиотека softwareSerial. Скорость работы до 57600 включительно и на отправку, и на прием.
- в bootloader добавлена проверка контрольной суммы
- добавлен файл wiringLL.h, в котором собраны некоторые макросы. Этими макросами заменены функции в местах, чувствительных к длительности выполнения кода.
- общие функции обработки прерываний перенесены в ram память для увеличения скорости выполнения. Так же в память ram перенесены функции обработки прерываний модулей WInterrupt (прерывания от gpio), модуля tone, модуля softwareSerial
- добавлен файл-заглушка util/delay.h, необходимый для некоторых библиотек
This commit is contained in:
klassents committed 2024-10-14 05:07:04 +03:00
1 parent a7468870fc
commit 47c01383e6
26 files changed
+1120 -315

No files matched your search

+1 -1
View File
@@ -309,7 +309,7 @@ void TwoWire::onRequest( void (*function)(void) )
}
// С function for trap handler
extern "C" void wire_handler_wrapper(void)
extern "C" void __attribute__((optimize("O3"))) wire_interrupt_handler(void)
{
twi_interruptHandler();
}
+1 -1
View File
@@ -323,7 +323,7 @@ void twi_attachSlaveTxEvent( void (*function)(void) )
* Input none
* Output none
*/
void twi_interruptHandler(void)
void __attribute__((optimize("O3"))) twi_interruptHandler(void)
{
uint32_t int_mask = HAL_I2C_Get_CR1_Content(&hi2c) & I2C_INTMASK; // interrupts allowed
uint32_t interrupt_status = HAL_I2C_Get_Interrupts_Status(&hi2c); // current flags