Picproje Elektronik Sitesi

SERBEST BÖLGE => Bilim Teknik => Matlab => Konuyu başlatan: XX_CİHAN_XX - 10 Kasım 2014, 20:52:49

Başlık: Matlab da seri porttan float veri nasıl alırım.
Gönderen: XX_CİHAN_XX - 10 Kasım 2014, 20:52:49
MCU dan Matlaba seri port üzerinden float veriler göndermek istiyorum.
Örneğin göndermek istediğim bilgi -85.7 olsun. Bunu MCU dan iki şekilde çıkabilirim.
1. Seçenek String ifade olarak "85.7" katarını matlaba gönderip matlab ta bunu çeşitli fonksiyonlarla string'ten float'a çevirmek olabilir.
2. Seçenek 85.7 sayısının bayt karşılığı olan 0xC2AB6666 değerini 4 bayt olarak matlab'a gönderip. Aldığım bu 4 baytı bin2dec gibi bir çevrim ile float olarak elde edebilirim.

Her iki çözüm önerisine de açığım basitçe nasıl bir kod ile matlab ortamında float veriyi elde edebilirim?
Başlık: Ynt: Matlab da seri porttan float veri nasıl alırım.
Gönderen: Kabil ATICI - 10 Kasım 2014, 20:55:56
ham veriyi gönder onu orada işle... Muhtemelen aha az bayt tutar.
Başlık: Ynt: Matlab da seri porttan float veri nasıl alırım.
Gönderen: XX_CİHAN_XX - 10 Kasım 2014, 21:05:22
Onu biliyorum sorun işleme kısmında onu nasıl yapacağımı sordum.
4 baytlık veriyi 4x1 lik A dizisine aldım diyelim
Bunu float yada double olarak nasıl ifade edeceğimi sordum.

mesaj birleştirme:: 10 Kasım 2014, 21:22:41

Elimde seri porttan fread ile aldığım 4 baytlık veri var.
A = [104;145;250;193]
Bu veriyi almak için matlab tarafında şu komutları kullandım
s = serial('COM8');
set(s,'BaudRate',115200);
fopen(s);
A = fread(s,4);
fclose(s)
delete(s)
clear s

Bu veri benim mikrodenetleyiciden 0xC1FA9168 datasını göndermem sonucunda oluştu.
Bu sayı aslında -31.321 float sayısına eşit.

Benim yapmak istediğim fread komutundan sonra A dizisinde elde ettiğim
A = [104;145;250;193]
Değerinden -31.321 bu değere nasıl dönüştürebilirim. Bunu da plot ta görmek istiyorum.
Başlık: Ynt: Matlab da seri porttan float veri nasıl alırım.
Gönderen: fatal16 - 22 Aralık 2014, 14:08:49
https://www.picproje.org/index.php/topic,56622.msg437331.html#msg437331 (https://www.picproje.org/index.php/topic,56622.msg437331.html#msg437331)

Bu konuda gerbayın anlattıgı gibi float sayıyı byte byte yollayabilirsiniz.