ST Nucleo F401RE

Başlatan robomaster, 12 Kasım 2015, 18:03:55

pea

Alıntı yapılan: robomaster - 13 Kasım 2015, 19:20:14
Tum yanıtlar oldukça bilgi verici gercekten. Hem discovery hemde nucleo dusunuyorum.
Nucleo şirin geliyor. Ama bir tane 16bit pwm çıkışı var başka yok.  Cok yazık.

1 tane 16 bit pwm mi?
STM32F401RE işlemcisinin özelliklerine bakalım:
Alıntı YapUp to 11 timers: up to six 16-bit, two 32-bit timers up to 84 MHz, each with up to four IC/OC/PWM or pulse counter and quadrature (incremental) encoder input, two watchdog timers (independent and window) and a SysTick timer
Yani 6*4 = 24 adet 16 bit PWM çıkışı.

Nucleo kartının pin dağılımına bakalım: https://developer.mbed.org/platforms/ST-Nucleo-F401RE/
20 civarı PWM çıkışı var.
mbed PWM kütüphanesinde timer'larla alakalı bir kısıtlama vardı ama neydi hatırlamıyorum. "Bir timer'a tek PWM bağlanabilir" gibi bir şey sanırım. Bu durumda da 6 PWM çıkışı var. Daha fazlası için hazır kütüphaneyi bırakıp, register'lara müdahale etmek gerekiyor.

mbed'de PWM çıkışı vermek de şu kadar basit:
#include "mbed.h"

PwmOut myPwm1(LED1);                 // LED1 pin'ine bağlı PWM çıkışı oluştur
PwmOut myPwm2(LED2);                //  LED2 pin'ine bağlı PWM çıkışı oluştur

int main() {
    
    myPwm1.period_ms(1);             // myPwm1 pwm objesinin periyodunu 1ms yap(1KHz)
    myPwm2.period(0.01f);             // myPwm2 pwm objesinin periyodunu 0.01s yap(100Hz)

    myPwm1.pulsewidth_us(100);  // myPwm1 pwm objesinin darbe genişliğini(duty) 100uS yap(%10 duty)
    myPwm2 = 0.5f;                        // myPwm2 pwm objesinin duty oranını %50 yap

    while(1){
}
}


Not: mbed'in hazır kütüphanelerini ufak ve hızlı işleriniz için kullanın. Tembelliğe, hazıra alışmayın.

robomaster

#31
Süper açıklama olmuş. Bir timera 4 pwm baglanabiliyor diye anladım.@pea

mesaj birleştirme:: 14 Kasım 2015, 00:31:56

Mbed sadece online olması pek hoşuma gitmedi.

muhendisbey

online olması şu açıdan iyi. Birden fazla bilgisayar kullanıyorsan, illa bilgisayarını dosyalarını kodlarını taşımak zorunda kalmıyorsun ve ide yüklemek zorunda kalmıyorsun. Bu artısı, eksisi ise neredeyse yok, yani yine istersen alıştığın bir ide'de bu keil olsun programlayabilirsin.

Belki çekinceniz kodum çalınır olabilir. MCU'ya programnızı yüklediğiniz andan itibaren çalınamaz değildir. Öyle ki gördüğümü söyleyeyim, code protect koyduğunuzda dış kılıfı açıp code protect fuse'unu iptal edebiliyorlar.
https://www.cl.cam.ac.uk/~sps32/mcu_lock.html

STM nin F4 serisi birçok iş için çok muazzam özelliklere sahip.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

JKramer

mbed sadece online değil, değişti mi diye tekrar baktım ama aynıymış: https://developer.mbed.org/handbook/mbed-Compiler#export-to-offline-toolchains

robomaster

Alıntı yapılan: JKramer - 14 Kasım 2015, 10:38:45
mbed sadece online değil, değişti mi diye tekrar baktım ama aynıymış: https://developer.mbed.org/handbook/mbed-Compiler#export-to-offline-toolchains

Yani offline kullanımı mümkün. O zaman derleyiciyi uygun bir ide ile kullanmak lazım. Bekle beni ARM.

JKramer

Evet. Her şey açık zaten, https://github.com/mbedmicro/mbed dosyaları çekip derleyici için ayarları yapmanız lazım.