STM32F407 Cortex M4 şamataları

Başlatan bunalmis, 16 Ekim 2011, 17:14:50

fatih6761

Bu kodlar zaten FPU ünitesini etkinleştirmek için.Aynı zamanda bu etkinleştirme işlemini ST Kütüphanesindeki system_stm32f4xx.c dosyasında da yapılıyor.Kolay proje yapabilmek için ST kütüphanelerini kullanmanızı tavsiye ederim.Ama hepten tembellik yok :) Bazı temel işlemleri bilmek gerek, gerisi boşa zaman kaybı olur...

EMP_Otto

Klein hocam sizin dosyayı indiremiyorum.İlgilenen herkese cok tesekkür ederim.Kart şuan yanımda değil deneyemiyorum malesef.İlk fırsatta deneyeceğim insallah.Tekrardan cok tesekkür edrim.
Klein hocam tekrar yükleyebilirseniz cok sevinirim.Kolay gelsin....
Bu işler zordur,özveri ister...

Klein

@EMP_Otto: Liink sağlam. kontrol ettim. FireFox veya Chrome ile bir dene.

@cooldoubtless
Benim sürüm 4.22 bu yüzden projeyi açamamış ve default ayarlarla yeniden proje oluşturmuş olabilir. Ayarların farklı çıkması bundan muhtemelen. 
Debugger ayarlarını değiştirip yükledim. Çalışmadı. Sebebini zaten biliyorsun. Use_Fpu meselesi. Onu düzeltince çalıştı.

cooldoubtless

evet o ayarları düzeltince bende de artık çalışıyor her proje yardımlarınız için herkese çok teşekkürler.

EMP_Otto

Klein hocam indirdim link firefoxta çaılısıyormus:) en kısa zamanda denerim.Cok tesekkür ederim...
Kolay gelsin...
Bu işler zordur,özveri ister...

sseedat

 USART3->BRR=0X1112;            // 9600 Baud

baud hızını bu şekilde nasıl bulduk.dökümandan pek bişey anlamadım.
Görünmez bir mezarlıktır Zaman...

rclk

Arkadaşlar şöyle bir sorunla karşılaştım;

GPIOA->OSPEEDR = 0xFFFFFFFF; şeklinde ayar yaptıgımda keil GPIOA nın tanımsız oldugunu söylüyor ama dökümanda GPIOx_OSPEEDR şeklinde tanımlamış ,hatalı bi kullanım mı yapıyorum.
Birde GPIOA,GPIOD-> = 0xFFFFFFFF; şeklinde yaptıgımda hata felan vermiyor ,bide bu kullanım dogru mu ?

Şimdiden teşekkür ediyorum,
Yardımlarınızı bekliyorum.
Herşeyi salla ama ÇAYI demle hacı..

sseedat

nasıl bir hata veriyorki
SystemInit()
{
.
.
}
GPIOA->OSPEEDR= 0xFFFFFFFF;
systeminit in dışında tanımlama yapıldığında hata verdiğini biliyorumda başka bir nedeni varsa bilmiyorum.
Görünmez bir mezarlıktır Zaman...

rclk

Alıntı yapılan: sseedat - 14 Ağustos 2012, 00:40:45
nasıl bir hata veriyorki
SystemInit()
{
.
.
}
GPIOA->OSPEEDR= 0xFFFFFFFF;
systeminit in dışında tanımlama yapıldığında hata verdiğini biliyorumda başka bir nedeni varsa bilmiyorum.
problem çözüldü defalarca F7 yaptım programı açıp kapattım tekrar derledim hata vermedi. :-\
Herşeyi salla ama ÇAYI demle hacı..

cooldoubtless

discovery kit ile kaç tane fırçasız doğru akım motoru sürebiliriz? tabi esc bağlayarak..ama kaç pinden pwm çıkışı alabiliriz acaba? 

pisayisi

tim1 üzerinde 4 farklı duty oranında pwm sinyali elde edebilirsin.

This example shows how to configure the TIM1 peripheral to generate 7 PWM signals 
with 4 different duty cycles (50%, 37.5%, 25% and 12.5%).

TIM1CLK = SystemCoreClock, Prescaler = 0, TIM1 counter clock = SystemCoreClock
SystemCoreClock is set to 168 MHz for STM32F4xx devices.

The objective is to generate 7 PWM signal at 17.57 KHz:
  - TIM1_Period = (SystemCoreClock / 17570) - 1
The channel 1 and channel 1N duty cycle is set to 50%
The channel 2 and channel 2N duty cycle is set to 37.5%
The channel 3 and channel 3N duty cycle is set to 25%
The channel 4 duty cycle is set to 12.5%
The Timer pulse is calculated as follows:
  - ChannelxPulse = DutyCycle * (TIM1_Period - 1) / 100
Murat

cooldoubtless

ya aynı duty cycle ile 4 motoru da sürmek istersem? quadrotor projesi için soruyorum

Klein

Alıntı yapılan: cooldoubtless - 15 Ağustos 2012, 21:13:42
discovery kit ile kaç tane fırçasız doğru akım motoru sürebiliriz? tabi esc bağlayarak..ama kaç pinden pwm çıkışı alabiliriz acaba?
Tüm timer registerlerini incelemedim ama görebildiğim kadarıyla
TIM1,2,3,4,5,8,9,10,11,12,13,14  timerlerinde output compare modülü var.  Muhtemelen hepsinin de 4 kanalı var.   48 PWM çıkışı elde edilebilir anlamına geliyor.
Tabi bazı pinler 2 farklı timer için kullanılabiliyor. Ya birini ya diğerini seçebiliyorsun. Bunun yanında bazı timer çıkışları da farklı pinlere yönlendirilebiliyor.   Bu yüzden HARD dokümanı sayfa 51'den başlayan alternatif fonksiyon haritasını detaylı inceleyip , timer pinlerinin haritasını çıkarmadan bu soruya kesin bir cevap vermek zor. 
Dokümana Genel bir bakış ile 20'den fazla bağımsız pin olduğunu gördüm. Daha farklı kombinasyonlarla bu sayı artırılabilir. 

pisayisi

Alıntı yapılan: cooldoubtless - 15 Ağustos 2012, 23:54:32
ya aynı duty cycle ile 4 motoru da sürmek istersem? quadrotor projesi için soruyorum

Aynı duty oranı ile dört motoru  sürsen, quadrocopter nasıl dengede kalacak.  Mems sensorlerden alınan bilgiler  işlencek 4 farklı duty çıkacak. Buna göre motorlar sürülecek.
Murat

cooldoubtless

Alıntı yapılan: pisayisi - 16 Ağustos 2012, 00:05:37
Aynı duty oranı ile dört motoru  sürsen, quadrocopter nasıl dengede kalacak.  Mems sensorlerden alınan bilgiler  işlencek 4 farklı duty çıkacak. Buna göre motorlar sürülecek.
nasıl yani..havada asılı kalması için 4 motorun da aynı devirle dönmesi gerekmez mi en basitinden..neyse zaten eğer klein hocamın dediği olay varsa buna da gerek kalmaz rahat biçimde sürülebilir..teşekkür ederim herkese..