Gönderen Konu: Matlab da seri porttan float veri nasıl alırım.  (Okunma sayısı 2127 defa)

Çevrimdışı XX_CİHAN_XX

  • Profesyonel Üye
  • *****
  • İleti: 2366
Matlab da seri porttan float veri nasıl alırım.
« : 11 Kasım 2014, 11: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?
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

Çevrimdışı Kabil ATICI

  • Profesyonel Üye
  • *****
  • İleti: 3573
    • Elektronik ve işlemciler
Ynt: Matlab da seri porttan float veri nasıl alırım.
« Yanıtla #1 : 11 Kasım 2014, 11:55:56 »
ham veriyi gönder onu orada işle... Muhtemelen aha az bayt tutar.
ambar7

Çevrimdışı XX_CİHAN_XX

  • Profesyonel Üye
  • *****
  • İleti: 2366
Ynt: Matlab da seri porttan float veri nasıl alırım.
« Yanıtla #2 : 11 Kasım 2014, 12: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:: 11 Kasım 2014, 12: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
Kod: [Seç]
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.
« Son Düzenleme: 11 Kasım 2014, 12:22:41 Gönderen: XX_CİHAN_XX »
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

Çevrimdışı fatal16

  • Müdavim
  • ***
  • İleti: 57
Ynt: Matlab da seri porttan float veri nasıl alırım.
« Yanıtla #3 : 23 Aralık 2014, 05:08:49 »
http://www.picproje.org/index.php/topic,56622.msg437331.html#msg437331

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