Picproje Elektronik Sitesi

PICPROJE PROGRAMLAMA DERSLERİ => STM32 Örnekleri => Konuyu başlatan: isoment01 - 04 Nisan 2020, 02:05:09

Başlık: Mapping Fonksiyonu
Gönderen: isoment01 - 04 Nisan 2020, 02:05:09
Arkadaşlar Arduino'daki map() fonksiyonuna benzer bir fonksiyon yapmaya çalıştım ama işin içinden çıkamadım şöyleki;
0-1023 arasındaki değeri -90, +90 arasında mappleyen bir fonksiyon yapamadım. Arduinodaki pozitif aralıklar için doğru oluyor. Negatifini yapamadım yardımcı olabilicek var mı acaba ?
Başlık: Ynt: Mapping Fonksiyonu
Gönderen: z - 04 Nisan 2020, 10:18:26
Output=((Input-512) *90)>> 9;
Başlık: Ynt: Mapping Fonksiyonu
Gönderen: fatal16 - 04 Nisan 2020, 10:58:38
Output = ((Input/1023)*180)-90;
Başlık: Ynt: Mapping Fonksiyonu
Gönderen: isoment01 - 04 Nisan 2020, 17:08:45
Teşekkürler ben de yaptım :D
Başlık: Ynt: Mapping Fonksiyonu
Gönderen: Elektroemre - 04 Nisan 2020, 17:11:16
Arduinonun orijinal fonskiyonu bu:

long map(long x, long in_min, long in_max, long out_min, long out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Bu kodun işaretli sayılarda çalışması gerekli. long default olarak signed olmalı. Kullanıdınız compiler nedir?

Olmazsa şöyle deneyin garanti olsun;

#include <stdint.h>

int32_t map(int32_t x, int32_t in_min, int32_t in_max, int32_t  out_min, int32_t out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
Başlık: Ynt: Mapping Fonksiyonu
Gönderen: isoment01 - 05 Nisan 2020, 13:26:29
Alıntı yapılan: Elektroemre - 04 Nisan 2020, 17:11:16Arduinonun orijinal fonskiyonu bu:

long map(long x, long in_min, long in_max, long out_min, long out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Bu kodun işaretli sayılarda çalışması gerekli. long default olarak signed olmalı. Kullanıdınız compiler nedir?

Olmazsa şöyle deneyin garanti olsun;

#include <stdint.h>

int32_t map(int32_t x, int32_t in_min, int32_t in_max, int32_t  out_min, int32_t out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Evet çalışıyormuş hocam sıkıntı kodda değilmiş assign ettiğim yerdeymiş bende kafayı yemiştim niye böyle oluyor diye assign ettiğim variable'ın data tipini yanlış atamışım hallettim.
Başlık: Ynt: Mapping Fonksiyonu
Gönderen: Yörük oğlu - 28 Şubat 2022, 22:23:56
Size nasıl ulaşabilirim emre bey sıze mühim bir konuda danismam gerek duranmusa702@gmail.com ulasrsanz sevinirim