STM8S firmware library

Başlatan XX_CİHAN_XX, 23 Haziran 2012, 01:51:12

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.

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.

memo333

derleyici olarak birşey kullandınız mı?

raisonance, cosmic birde iar var ama hangisi daha iyi?
Gömülü Linux Notları --> http://linuxedu.xyz/

XX_CİHAN_XX

Derleyici olarak IAR kullanıyorum.
Diğerlerini hiç denemedim.
Eski alışkanlık bu yönde olduğu için bu şekilde devam ediyorum.
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.

pisayisi

Ben cosmic kullanmıştım stm8 ile çalıştığım zamanlar kullanışlı bir program st visual develop ile entegre olarak kullanılabiliyor. Stm8s ile ilgili sıkıntı şu, 32 bitlik stm32 serisinde kod yazmak inan daha kolay. Nedeni ise 8 bitlik işlemciyi şaha kaldırmak için kulağını tersten göstermek zorunda kalıyorsun zor bir işlemci...
Murat

XX_CİHAN_XX

Yüksek adetli bir ürün söz konusu olunca ihtiyacın fazlasını kullanmak can yakıcı oluyor.
Bu seride kod yazmak neden bu kadar sıkıntı biraz daha açar mısınız?
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.

pisayisi

Örneğin stm8s de hall sensor okumak için kullanılmış bir kod parçasını paylaşırsam, böyle bir kodu stm32 de yazmak için birkaç satır yetecektir...

#ifdef TIMER2_HANDLES_HALL
@near @interrupt @svlreg void TIM2_CAP_COM_IRQHandler (void)
{
	u8 bHStatus = 0;

	#ifdef DEBUG_PINS
		Z_DEBUG_PORT ^= Z_DEBUG_PIN;
	#endif

//	GetStepTime();

	// Read status of H1 and set the expected polarity
	if (H1_PORT & H1_PIN)
	{
		TIM2->CCER1 |= BIT5;
		bHStatus |= BIT2;
	}
	else
	{
		TIM2->CCER1 &= (u8)(~(BIT5));
	}
	
	// Read status of H2 and set the expected polarity
	if (H2_PORT & H2_PIN)
	{
		TIM2->CCER1 |= BIT1;
		bHStatus |= BIT1;
	}
	else
	{
		TIM2->CCER1 &= (u8)(~(BIT1));
	}
	
	// Read status of H3 and set the expected polarity
	if (H3_PORT & H3_PIN)
	{
		TIM2->CCER2 |= BIT1;
		bHStatus |= BIT0;
	}
	else
	{
		TIM2->CCER2 &= (u8)(~(BIT1));
	}
	
	if (TIM2->SR1 & BIT2)
	{
		TIM2_ClearITPendingBit(TIM2_IT_CC2);
	}

	if (TIM2->SR1 & BIT1)
	{
		TIM2_ClearITPendingBit(TIM2_IT_CC1);
	}

	if (TIM2->SR1 & BIT3)
	{
		TIM2_ClearITPendingBit(TIM2_IT_CC3);
	}
Murat

CLR

Alıntı yapılan: pisayisi - 24 Haziran 2012, 00:52:39
Örneğin stm8s de hall sensor okumak için kullanılmış bir kod parçasını paylaşırsam, böyle bir kodu stm32 de yazmak için birkaç satır yetecektir...

#ifdef TIMER2_HANDLES_HALL
@near @interrupt @svlreg void TIM2_CAP_COM_IRQHandler (void)
{
	u8 bHStatus = 0;

	#ifdef DEBUG_PINS
		Z_DEBUG_PORT ^= Z_DEBUG_PIN;
	#endif

//	GetStepTime();

	// Read status of H1 and set the expected polarity
	if (H1_PORT & H1_PIN)
	{
		TIM2->CCER1 |= BIT5;
		bHStatus |= BIT2;
	}
	else
	{
		TIM2->CCER1 &= (u8)(~(BIT5));
	}
	
	// Read status of H2 and set the expected polarity
	if (H2_PORT & H2_PIN)
	{
		TIM2->CCER1 |= BIT1;
		bHStatus |= BIT1;
	}
	else
	{
		TIM2->CCER1 &= (u8)(~(BIT1));
	}
	
	// Read status of H3 and set the expected polarity
	if (H3_PORT & H3_PIN)
	{
		TIM2->CCER2 |= BIT1;
		bHStatus |= BIT0;
	}
	else
	{
		TIM2->CCER2 &= (u8)(~(BIT1));
	}
	
	if (TIM2->SR1 & BIT2)
	{
		TIM2_ClearITPendingBit(TIM2_IT_CC2);
	}

	if (TIM2->SR1 & BIT1)
	{
		TIM2_ClearITPendingBit(TIM2_IT_CC1);
	}

	if (TIM2->SR1 & BIT3)
	{
		TIM2_ClearITPendingBit(TIM2_IT_CC3);
	}


STM32 için çoğu insan için hazır lib gerekli ama STM8 için değil, yeterince istersen 30 günde tüm modüllerinden kendi lib'ini yapabilirsin. STM8, pic'e çoğu yönden basar geçer sanırım clock switching yok.   
Knowledge and Experience are Power

JKramer

Clock switching'i denemedim ama katalogda yapılabileceği yazıyor.

STM8 ile 32'yi karşılaştırmak pek anlamlı değil. Sonuçta yapacağımız işe göre mikrodenetleyici seçiyoruz. STM32'nin fiyatı 8'le aynı olsa neden kullanmayalım? Tabii ki o zaman STM8 diye bir şey olmazdı :).

Bu arada ben Raisonance kullanıyorum. Başlarken birkaç sitede karşılaştırmalara bakmıştım, Cosmic'le aman aman bir fark yoktu. Bir de o zaman Cosmic'in ücretsiz sürümü Raisonance'a göre daha kısıtlıydı. Raisonance'ın forumlarında hızlı bir şekilde yardım alınabiliyor. Iar konusunda bir bilgim yok, şu anda bulamadım ama fiyatı diğer iki derleyiciye göre daha yüksekti diye hatırlıyorum.

pisayisi

STM32F serisi motor kontrolünde cidden dünyada icadedilegelmiş en iyi işlemci. Siz nasıl bir talepte bulundunuz ki bizim kütüphanemizde yok dediler anlayamadım. Çünkü o kütüphane dedikleri şeyin confidental versiyonu var o tam sürüm derleme işini header dosyalara göre kendiniz yapabiliyorsunuz. Ticari uygulamalarda lisans sıkıntıları var yinede confidental versiyonu temin edemedim empaya yönlendirmişlerdi onlar da herşeyden avare..
Murat

fgokcegoz

STM8 serisi işlemciler düşük maliyetli uygulamalar için gerçekten çok uygun. Fiyat & performans ilişkisi gerçekten beklenenin üstünde. Eğer hassas bir zamanlama işlemleriniz yok ise dahili 16MHz RC osilatörü de var. İsterseniz harici olarakta kristal bağlayabilirsiniz. Kullanımıda o kadar zor değil. Datasheet leride önceki yorumlarda söylendiği gibi bakkal ahmet amcanın defterine falan benzemiyor... Gayet güzel. Maalesef, alışılmışın dışında olan herşeyi itmek gibi bir özelliğimiz var. Tek sıkıntısı güzel bi C derleyicisinin bulunmaması. ST Visual Develop var ama onda sadece assembly dilini kullanabiliyorsunuz. İsterseniz cosmic veya raisonance ın c derleyicilerini ST Visual Develop a gömüp STVD de C ile kod geliştirebilirsiniz. Ama onlarında header dosyaları oldukça yetersiz. En iyisi yine IAR... İşlemcilere ait header dosyaları çok iyi. Peripheral lere ait kütüphaneler var ama onlara ihtiyaç yok. Kendiniz kısa sürede oluşturabilirsiniz, kütüphanelerinizi. Birde şunu söylemeden geçmek istemiyorum. EMC performansı Freescale gibi core ları dünyaya nam salmış mikro lar kadar değil. Ama orta ölçekli projeler için oldukça yeterli olduğunu söyleyebilirim, genel olarak...
"Vicdanın ziyası, ulûm-u diniyedir. Aklın nuru, fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder." (Bediüzzaman Said Nursi)