Ср авг 02, 2023 07:41:56
Вт сен 26, 2023 12:44:31
Сб сен 30, 2023 12:00:54
Вс окт 01, 2023 20:37:21
Сб окт 14, 2023 08:59:31
#define I2C_DEV_NUM 1
#define I2C_DEV I2C1
#define I2C_IRQn I2C1_IRQn
#define I2C_IRQHandler I2C1_IRQHandler
#define CMU_CLOCK cmuClock_I2C1
#define SYNCROUTE(A) SYNCH ## A ## ROUTE
#define SYNCHxROUTE(A) SYNCROUTE(A)
....
GPIO->PRSROUTE[0].SYNCHxROUTE(5) = .....
//заменяется на
GPIO->PRSROUTE[0].SYNCH5ROUTE =
#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
Сб окт 14, 2023 11:02:30
#define I2C_DEV_1
#ifdef I2C_DEV_1
#define I2C_DEV_NUM 1
#define I2C_DEV I2C1
#define I2C_IRQn I2C1_IRQn
#define I2C_IRQHandler I2C1_IRQHandler
#define CMU_CLOCK cmuClock_I2C1
#endif
#ifdef I2C_DEV_2
#define I2C_DEV_NUM 2
#define I2C_DEV I2C2
#define I2C_IRQn I2C2_IRQn
#define I2C_IRQHandler I2C2_IRQHandler
#define CMU_CLOCK cmuClock_I2C2
#endif
#define I2C_DEV_NUM 1
#ifdef I2C_DEV_NUM == 1 //если это прокатит
#define I2C_DEV I2C1
#define I2C_IRQn I2C1_IRQn
#define I2C_IRQHandler I2C1_IRQHandler
#define CMU_CLOCK cmuClock_I2C1
#elif I2C_DEV_NUM == 2
#define I2C_DEV I2C2
#define I2C_IRQn I2C2_IRQn
#define I2C_IRQHandler I2C2_IRQHandler
#define CMU_CLOCK cmuClock_I2C2
#endif
Сб окт 14, 2023 11:10:31
#define mkstrX(s) #s
#define mkstr(s) mkstrX(s)
#define PROJECT "..\\" mkstr(ID) "_data_var.h"
#define I2C_DEV "I2C" mkstr(I2C_DEV_NUM)
Сб окт 14, 2023 12:20:22
#define I2C_DEV_NUM 1
#define I2C_DEV I2C##I2C_DEV_NUM
#define I2C_IRQn I2C##I2C_DEV_NUM##_IRQn
Сб окт 14, 2023 12:24:31
../i2c_drv2_emlib.c:49:25: error: 'I2CI2C_DEV_NUM_IRQn' undeclared (first use in this function)
49 | #define I2C_IRQn I2C##I2C_DEV_NUM##_IRQn
| ^~~
../i2c_drv2_emlib.c:92:20: note: in expansion of macro 'I2C_IRQn'
92 | NVIC_SetPriority(I2C_IRQn, I2C_IRQ_PRI);
| ^~~~~~~~
Сб окт 14, 2023 12:57:43
#define JOIN(var1, var2) JOIN_(var1, var2)
#define JOIN_(var1, var2) var1##var2
#define I2C1 5
#define I2C_DEV_NUM 1
#define I2C_DEV JOIN(I2C,I2C_DEV_NUM)
...
a = I2C_DEV; //дебаггер показал 5
Сб окт 14, 2023 15:40:42
#define concatVOID
#define concat_SUBST2(a, b, c, d, e, f, g, h, i, j, k, l, ...) \
a##b##c##d##e##f##g##h##i##j##k##l
#define concat_SUBST(...) concat_SUBST2(__VA_ARGS__)
#define concat(...) concat_SUBST(__VA_ARGS__, concatVOID, concatVOID, \
concatVOID, concatVOID, concatVOID, concatVOID, concatVOID, concatVOID, \
concatVOID, concatVOID, concatVOID, concatVOID, concatVOID, concatVOID)
#define concatAB_(a, b) a##b
#define concatABC_(a, b, c) a##b##c
#define concatABCD_(a, b, c, d) a##b##c##d
#define concatABCDE_(a, b, c, d, e) a##b##c##d##e
#define concatABCDEF_(a, b, c, d, e, f) a##b##c##d##e##f
#define concatAB(a, b) concatAB_(a, b)
#define concatABC(a, b, c) concatABC_(a, b, c)
#define concatABCD(a, b, c, d) concatABCD_(a, b, c, d)
#define concatABCDE(a, b, c, d, e) concatABCDE_(a, b, c, d, e)
#define concatABCDEF(a, b, c, d, e, f) concatABCDEF_(a, b, c, d, e, f)
Ср дек 27, 2023 16:50:23
#pragma vector=vect_num
__interrupt void func(void){}
Ср дек 27, 2023 23:59:46
#pragma vector=vect_num1, vect_num2
__interrupt void func(void){}
Чт дек 28, 2023 00:07:11
Не буду ни разу. Не сомневался, что должно быть просто. Интуитивно попробовал так,VladislavS писал(а):Будете долго смеяться.
#pragma vector=vect_num1
#pragma vector=vect_num2
__interrupt void func(void){}
Ср янв 17, 2024 17:26:18
struct example
{
int a;
int b;
int c;
};
Ср янв 17, 2024 17:45:57
Ср янв 17, 2024 18:00:46
попробую.azhel12 писал(а):можно воспользоваться макросом offsetof
Чт фев 08, 2024 19:46:24
Чт фев 08, 2024 20:38:50
Чт фев 08, 2024 20:49:34