CubeMx deki pin seçme algoritması

Başlatan z, 09 Aralık 2015, 12:19:05

z

CubeMx programındaki gibi pin seçim algoritmasını kurmaya çalışıyorum kafam cozuttu.


Timer1 seçeceksen pinler 1,2,3,4,5 yada 7,8,9,10

olabilir. ADC1 seçecksen pinler 1,5,6,20 ya da 21,22,26,41olabilir.

....
....
....
....

Timer1 , ADC1, USART2 kullanacağım hangi ünite hangi pinlere atanmış olsun.

Bunun algoritmasını oluşturmaya çalıştım zorlanıyorum.

Mesela ADC nin bazı pinleri çakışma sonucu kullanılamıyor olsa da bana bunu da bir seçenek olarak göstersin.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhittin_kaplan

güzel bir SQL procesi, (muhtemelen hiç sql kullanmadın abi)

bir excel tablosu gibi düşün
sutunlarda çevresel ünite adları
satırlarda pinler

hangi pine hangi çevresel üniteyi atayacaksan kesistiği yere 1 yaz, sonra deki "bana boşta kalanları ver"

z

Arraylerle structerlarla vs yapmam lazım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhittin_kaplan

tablo işte iki boyutlu arrayla yapsan boş elemanları getir desen.

z

#4
Biraz daha detaya bakmak lazım.

Tamam tablo olacak zaten.

Diyelimki seçilen iki çevre biriminin bazı pinleri çakıştı.

Çevre birimini otomatik olarak başka pinlere taşıması lazım.

Diyelimki taşıyacağı pinler bir başka çevre birimi tarafından kullanılıyor.

Başka pine taşıyabilirmi evet ise taşı. Hayır ise çakışmaya neden olan diğer diğer çevre birimi bir başka yere taşınabilirmi evet ise taşı. Taşınamıyorsa o çakışmaya neden olan taşınabilirmi.....

İşte burda kafam dumanlanıyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

tunayk

Eh hocam çakışan iki eleman da yeri değişemez ve ikiside eşit ağırlıkta ise bunun çözümü birinden vazgeçmek oluyor gibi duruyor.

Yada dönüşümlü kullanabiliyorsanız ozaman zaman paylaşımlı kullandıracaksınız.

Tek aracın geçebildiği sokakta ortada bir araçla karşılaşınca  ne yapıyorsunuz?

z

Tamam da algoritmayı kuramadım.

Neyse bir yapı oturttum galiba. Belki devamı gelir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

odemiriz

search algoritmalarında arc consistency ile yapılanlara benzettim. her pin için domain kurup seçtikçe pinlerde değerleri elemeniz lazım. Siz pine ünite seçtikçe algoritma ünitelerin bağlılıklarına göre diğer pinlerin domaininden elemeye devam edicek. Devam eden pinlerin domaininde ne kaldıysa onları seçebiliceksiniz.

z

Programımda ana başlıktaki soruya el atacak duruma ancak gelebildim.

Asıl eklemek istediğim menüde tasarım bölümü olacak.

Timer, ADC , SPI, I2C kullanacağım dediğimde atıyorum program bana Timerlardan Timer2 nin 2 ve 4 kanallarını ADC den ADC1 IN3, IN4 girişlerini SPI2 ve I2C1 kullanmamı ve Remap değerleri şu şu olacak diyebilmeli.

http://www.cncdesigner.com/wordpress/wp-content/uploads/STM32F103.zip
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Tam istediğim gibi olmadı ama şimdilik işimi görüyor.

https://youtu.be/KQ6r5LxJ46w

Çakışma varsa sıra ile remap değerlerini otomatik artırıp  çakışmanın olup olmadığı durumu bilgisayara denettirebilirim.
Bu durumda tam istediğim yapı kurulmuş olur.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com