-
- Проще говоря - компилятор не знал что это - колбэк, который будет
вызван из прерывания. Потому локальные переменные перекрывались с
другими функциями, якобы по причине невозможности их перекрестного
вызова. - POV_(13.12.2020 14:44, )
- У тебя набор слов, как у студента, который сдает зачет и "плавает" в теме. Непонятно только, кто препод, и для кого строятся эти словесные нагромождения. il-2(882 знак., 13.12.2020 16:02)
- Потому как адрес локальной переменной был жестко задан на этапе
компиляции. И перекрывался с чем не надо. Так видимо. - POV_(13.12.2020 14:23, )
- Не морочь голову. Список функций в директиве OVERLAY ничем не лучше
switch-case прямо в коде. На который и нужно заменить указатели на
функции. И всё само и волшебно заработает оптимальным образом.
Просто вместо установки указателя, ты в переменной, где был раньше
указатель, должен будешь держать enum позволяющий выбор из одного
из N вариантов. А в обработчике прерываний сделать switch
(enum-var) { case Variant1: f1(); break; case Variant2: f2();
break... }... - fk0(13.12.2020 16:15)
- Нет, эти колбеки могут быть перезначены. - POV_(13.12.2020 16:18, )
- Ну вот вместо адреса функции для коллбэка будешь менять число в enum'е. Разницы никакой. - fk0(13.12.2020 16:19)
- Нет, эти колбеки могут быть перезначены. - POV_(13.12.2020 16:18, )
- Не морочь голову. Список функций в директиве OVERLAY ничем не лучше
switch-case прямо в коде. На который и нужно заменить указатели на
функции. И всё само и волшебно заработает оптимальным образом.
Просто вместо установки указателя, ты в переменной, где был раньше
указатель, должен будешь держать enum позволяющий выбор из одного
из N вариантов. А в обработчике прерываний сделать switch
(enum-var) { case Variant1: f1(); break; case Variant2: f2();
break... }... - fk0(13.12.2020 16:15)
- Проще говоря - компилятор не знал что это - колбэк, который будет
вызван из прерывания. Потому локальные переменные перекрывались с
другими функциями, якобы по причине невозможности их перекрестного
вызова. - POV_(13.12.2020 14:44, )