fwrite int64 not supported

10 vues (au cours des 30 derniers jours)
Andrea Bettati
Andrea Bettati le 28 Juin 2019
Hi to you all,
I'm using matlab to exchange data with a cortex M4 board.
In my embedded c code I enabled the usb vcom and I am able to write and read using
fwrite()
fread()
Everything is fine if I use 'int32' as precision, but 'int64' is not supported.
Unfortunately I need to send to my board some int64 parameters and I wonder which is the best way of doind this.
Any hints?

Réponses (1)

Guillaume
Guillaume le 28 Juin 2019
Well, a 64 bit integer can be easily split into two 32-bit halves. You'd need to know the endianess of your environment but it's going to be either:
%input:
% val64: a uint64 integer scalar
val64as32 = typecast(val64, 'uint32');
fwrite(something, val64as32, 'uint32')
or
%input:
% val64: a uint64 integer scalar
val64as32 = fliplr(typecast(val64, 'uint32'));
fwrite(something, val64as32, 'uint32')

Catégories

En savoir plus sur Language Fundamentals dans Help Center et File Exchange

Produits


Version

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by