Size: a a a

2020 December 20

A

A in Embedded Group
Faberge
Давно не слышал, чтобы о ней кто-нибудь вспоминал
откапал в своих недрах, думал использовать в качестве измерения импеданса компонентов. Ну и вообще немного поковырялся с ней. Интересно кто как ее использует. Вроде не плохой гаджет. Но у меня есть некоторые сомнения.
источник

Х

Х in Embedded Group
A
есть кто нибудь в группе кто пользуется red pitaya?
Когда-то как осциллограф юзал
источник

ED

Electronics Designer in Embedded Group
Ponytale 🇷🇺
...
нужно проводить деления на степень двойки, заданную при компиляции (с сохранением остатка):

#ifndef uint_t
typedef unsigned int uint_t;
#endif

#define K 4
#define K_MASK ( ((uint_t)1 << (K)) - 1 )

далее юзаются две переменных:
uint_t val, val_mod;

ну и где-то дальше:

val = x>>K;
val_mod = x&K_MASK;

ну и где-то дальше вычитаем из остатка от деления бОльший остаток:
if (val_mod < y)        /* нужен заем */
{
 val--;            
 val_mod += K_MASK - y; val_mod[n]++; /* val_mod = 2^K - (y - val_mod) */
}

если кому-то интересно это разобрать...
А #ifdef и другие препроцессорные директивы разве работают с typedef?
источник

D

Dr Zlo in Embedded Group
Electronics Designer
А #ifdef и другие препроцессорные директивы разве работают с typedef?
неа
источник

ED

Electronics Designer in Embedded Group
Как по мне, надо бы писать

#ifndef CUSTOM_INT
typedef unsigned int uint_t;
#define CUSTOM_INT
#endif
источник

D

Dr Zlo in Embedded Group
Ponytale 🇷🇺
...
нужно проводить деления на степень двойки, заданную при компиляции (с сохранением остатка):

#ifndef uint_t
typedef unsigned int uint_t;
#endif

#define K 4
#define K_MASK ( ((uint_t)1 << (K)) - 1 )

далее юзаются две переменных:
uint_t val, val_mod;

ну и где-то дальше:

val = x>>K;
val_mod = x&K_MASK;

ну и где-то дальше вычитаем из остатка от деления бОльший остаток:
if (val_mod < y)        /* нужен заем */
{
 val--;            
 val_mod += K_MASK - y; val_mod[n]++; /* val_mod = 2^K - (y - val_mod) */
}

если кому-то интересно это разобрать...
кстати да
источник

D

Dr Zlo in Embedded Group
#ifndef uint_t
typedef unsigned int uint_t;
#endif

вот эта часть кривая
источник

D

Dr Zlo in Embedded Group
можно просто сделать typedef unsigned int uint_t; без проверок, но есть шанс получить ошибку алиаса
источник

D

Dr Zlo in Embedded Group
хотя мне в принципе не понятно почему не используется stdint с uint32_t
источник

ED

Electronics Designer in Embedded Group
Я так понял, человек хочет числа нестандартной разрядности.
источник

D

Dr Zlo in Embedded Group
Electronics Designer
Я так понял, человек хочет числа нестандартной разрядности.
но использует unsigned int
источник

ED

Electronics Designer in Embedded Group
Так это вроде для примера.
источник

A

Alexander in Embedded Group
ЯННП
Но для детекции переполнения вообще можно попробовать сделать ассемблерные сниппеты и мониторить флажок переполнения слова состояния процессора.

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/detecting-overflow-from-mul

Если вы про arm'оподобные камни ведете речь.
источник

A

Alexander in Embedded Group
Ponytale 🇷🇺
кстати да, спасибо за это наблюдение.

но у меня все еще хуже :). также как unsigned int было лишь примером, так и UINT_MAX - тоже лишь для того, чтобы не засорять вопрос... на самом деле я делаю вычисления в произвольной разрядности, задаваемой маской, аналогичной UINT_MAX, но содержащей другое (не соответствующее стандартным типам си) кол-во бит. мне нужно, чтобы все вычисления не выходили за пределы именно этой разрядности😁😜😝
А, еще мб есть смысл посмотреть в сторону библиотеки работы с числами с фиксированной точкой (представление в Q) - у TI на сайте была выложена
источник

A

A in Embedded Group
Х
Когда-то как осциллограф юзал
А потом какая судьба? Тоже так валяется?
источник

Х

Х in Embedded Group
A
А потом какая судьба? Тоже так валяется?
А то ж)))
источник

Х

Х in Embedded Group
Я думал у цинка можно плисовую часть независимо от процовой прогать, но случился облом
источник

S

Ser in Embedded Group
Alexander
А, еще мб есть смысл посмотреть в сторону библиотеки работы с числами с фиксированной точкой (представление в Q) - у TI на сайте была выложена
У ti, вроде бы, без исходников выложена.
источник

A

Alexander in Embedded Group
Ser
У ti, вроде бы, без исходников выложена.
Не скажу.
Но по слову IQmath на Github достаточно много всего вплоть до исходников находится.


https://github.com/prusnak/SW-EK-LM4F120XL/blob/master/IQmath/IQmathLib.h
источник

D

Dr Zlo in Embedded Group
Alexander
Не скажу.
Но по слову IQmath на Github достаточно много всего вплоть до исходников находится.


https://github.com/prusnak/SW-EK-LM4F120XL/blob/master/IQmath/IQmathLib.h
cmsis-dsp емнип Q-математику реализует
источник