STM8S Yazı Dizisi

Başlatan fgokcegoz, 12 Kasım 2012, 22:20:18

ilhan_mkp

hocam bir önceki mesajimi yanlis anladiniz kodlarinizi cosmic icin düzenleyemen diye düsündüm bende iarin ilacli bir versiyonuna gecis yaptim
derleyici sorunum kalmadi yani.

bymrz

#61
Alıntı yapılan: fgokcegoz - 14 Şubat 2013, 22:52:00
PCB hazırlamak gerçekten faydalı olur adınıza. Benimde öyle bir düşüncem var aslında. Ama vakit sıkıntısından dolayı bir türlü fırsat bulup başlayamadım. Çalışmalarınızda başarılar dilerim. Bu arada IAR ı C bilginizin düzeyine göre tercih etmemenizi anlayamadım. IAR ın ilaçlı tam sürümünüde bulmak mümkün. Kod sınırlamasıda pek problem değil bu yüzden. Bence IAR ı tercih etmeniz yerinde olacaktır.

Hocam bu arada STM8 ile başlayıp, daha sonra ST'nin 32bit Arm işlemcilerine geçecek birisi için hangi IDE'yi ve Compiler'ı tavsiye edersiniz. Yani birisine alışınca 32 bite geçtiğimde değişiklik yapmayayım bir daha.
Fakat IDE 'de şöyle MPLABX gibi kullanışlı bir şey olursa çok iyi olur. Mesela bir structurun ismini yazdığımda, içerisindeki öğeler listelensin. Bir değişken tanımladığımda ileride o değişkenin harflerini nasıl yazmıştım diye hatırlamak zorunda kalmayayım, kendisi tahmin etsin, vs....
Yani şöyle Visual Studio'yu andıran bir IDE yok mu. Tabi bir de ST nin kendi debugger larını desteklesin. Malum hep debug modunda çalışacağız...

Çok şey mi istedim :) 

Erol YILMAZ

bunun tek anlamı var  IAR..

muhittin_kaplan

Alıntı yapılan: alone_lover - 15 Şubat 2013, 14:08:29
Hocam bu arada STM8 ile başlayıp, daha sonra ST'nin 32bit Arm işlemcilerine geçecek birisi için hangi IDE'yi ve Compiler'ı tavsiye edersiniz. Yani birisine alışınca 32 bite geçtiğimde değişiklik yapmayayım bir daha.
Fakat IDE 'de şöyle MPLABX gibi kullanışlı bir şey olursa çok iyi olur. Mesela bir structurun ismini yazdığımda, içerisindeki öğeler listelensin. Bir değişken tanımladığımda ileride o değişkenin harflerini nasıl yazmıştım diye hatırlamak zorunda kalmayayım, kendisi tahmin etsin, vs....
Yani şöyle Visual Studio'yu andıran bir IDE yok mu. Tabi bir de ST nin kendi debugger larını desteklesin. Malum hep debug modunda çalışacağız...

Çok şey mi istedim :)
Şu An keil bu dediklerinizi yapıyor. CoIDE de yapıyor.

ilhan_mkp

muhittin hocam keil stm8 desteklemiyor.

muhittin_kaplan

Anladım Hocam, ben 8 bitten geçince bunlarda olsun anlamışım.

ilhan_mkp

hocam bu stm8s105c6 da  C portu 0 pini yok tamamda E portu 4nolu pin yok biraz tuhaf bi durum neden arada bir   pin yok anlayamadım tek bir pini high yapip bir yönde kaydırdığımız zaman 4 nolu pinin olduğu kısıma denk gelince ne olacak.
pek anlatamadım ama kafamı karıştıran bir durum var.

fgokcegoz

Alıntı yapılan: alone_lover - 15 Şubat 2013, 14:08:29
Hocam bu arada STM8 ile başlayıp, daha sonra ST'nin 32bit Arm işlemcilerine geçecek birisi için hangi IDE'yi ve Compiler'ı tavsiye edersiniz. Yani birisine alışınca 32 bite geçtiğimde değişiklik yapmayayım bir daha.
Fakat IDE 'de şöyle MPLABX gibi kullanışlı bir şey olursa çok iyi olur. Mesela bir structurun ismini yazdığımda, içerisindeki öğeler listelensin. Bir değişken tanımladığımda ileride o değişkenin harflerini nasıl yazmıştım diye hatırlamak zorunda kalmayayım, kendisi tahmin etsin, vs....
Yani şöyle Visual Studio'yu andıran bir IDE yok mu. Tabi bir de ST nin kendi debugger larını desteklesin. Malum hep debug modunda çalışacağız...

Çok şey mi istedim :)

Hem STM8 leri programlamak için, hemde STM32 leri programlamak için aynı IDE veya Compiler ı kullanma lüksümüz yok maalesef. Ama STM8 için IAR kullanıyorsanız, STM32 içinde IAR kullanabilirsiniz. IAR gerçekten iyi bir derleyici. Her ne kadar görünüm açısından eksikleri olsada... Ama ARM lar için şöyle bir durum var, IAR da sıfırdan proje açmak KEIL kadar kolay değil. Projeyi açtıktan sonra biraz ayar yapmanız gerekiyor. Eğer ST nin kendi kütüphanelerini kullanacaksanız, ST nin sunduğu şablon proje dosyalarını kullanabilirsiniz. Ama eğer benim gibi ST nin kendi kütüphanelerini kullanmamakta ısrar ederseniz, kendiniz şablon bir proje oluşturmak suretiyle işinizi kolaylaştırmış olursunuz...

KEIL ve IAR haricinde, CoCoox, CodRed Suite,Altium Tasking, Atollic True Studio vs. gibi Eclipse tabanlı derleyicilerde kullanabilirsiniz.

Alıntı yapılan: ilhan_mkp - 21 Şubat 2013, 21:46:52
hocam bu stm8s105c6 da  C portu 0 pini yok tamamda E portu 4nolu pin yok biraz tuhaf bi durum neden arada bir   pin yok anlayamadım tek bir pini high yapip bir yönde kaydırdığımız zaman 4 nolu pinin olduğu kısıma denk gelince ne olacak.
pek anlatamadım ama kafamı karıştıran bir durum var.

Evet STM8105C6 da PE4 pini yok. Neden koymamışlar bilmiyorum. Gerçektende tuhaf bir durum...
"Vicdanın ziyası, ulûm-u diniyedir. Aklın nuru, fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder." (Bediüzzaman Said Nursi)

bymrz

#68
#ferudun hocam, Merhaba...

Ben de çalışmalara start verdim. SPI modülünü çalıştırdım.

Bir de siz her ne kadar hazır kütüphaneleri sevmeseniz de bana biraz kullanışlı geldi. Tabi kullanışlı olmayan kısımları da var...

Bunun yanında bir de I2C modülünü çalıştırmayı denedim ama bir türlü başaramadım...

void InitPorts()
{
             
GPIO_Init(GPIOD,GPIO_PIN_6,GPIO_MODE_IN_PU_NO_IT);
GPIO_Init(GPIOD,GPIO_PIN_5,GPIO_MODE_IN_PU_NO_IT);
GPIO_Init(GPIOD,GPIO_PIN_4,GPIO_MODE_IN_PU_NO_IT);
GPIO_Init(GPIOD,GPIO_PIN_3,GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOD,GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOD,GPIO_PIN_1,GPIO_MODE_OUT_PP_HIGH_FAST);


GPIO_Init(GPIOC,GPIO_PIN_7,GPIO_MODE_IN_FL_NO_IT);
GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOC,GPIO_PIN_5,GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOC,GPIO_PIN_4,GPIO_MODE_IN_FL_NO_IT);
GPIO_Init(GPIOC,GPIO_PIN_3,GPIO_MODE_OUT_PP_HIGH_FAST);
     
GPIO_Init(GPIOB,GPIO_PIN_5,GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOB,GPIO_PIN_4,GPIO_MODE_OUT_PP_HIGH_FAST);
           
GPIO_Init(GPIOA,GPIO_PIN_3,GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOA,GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOA,GPIO_PIN_1,GPIO_MODE_OUT_PP_HIGH_FAST);
          
}

void InitClock()
{
CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
}






void InitSPI()
{
  
  SPI_ITConfig  (SPI_IT_WKUP ,DISABLE) ;
  SPI_ITConfig  (SPI_IT_OVR ,DISABLE) ;
  SPI_ITConfig  (SPI_IT_MODF,DISABLE) ;
  SPI_ITConfig  (SPI_IT_CRCERR,DISABLE) ;
  SPI_ITConfig  (SPI_IT_TXE ,DISABLE) ;
  SPI_ITConfig  (SPI_IT_RXNE ,DISABLE) ;
  SPI_ITConfig  (SPI_IT_ERR,DISABLE) ;
  


  SPI_Init  ( 
            SPI_FIRSTBIT_MSB ,  
            SPI_BAUDRATEPRESCALER_4,  
            SPI_MODE_MASTER,  
            SPI_CLOCKPOLARITY_LOW,  
            SPI_CLOCKPHASE_1EDGE,  
            SPI_DATADIRECTION_2LINES_FULLDUPLEX,  
            SPI_NSS_SOFT,  
            0x00  
            );
                   
	SPI_Cmd(ENABLE);   
}





void InitI2C()
{
unsigned char Input_Clock;


Input_Clock = CLK_GetClockFreq()/1000000;   
I2C_DeInit();            

CLK_PeripheralClockConfig(CLK_PERIPHERAL_I2C, ENABLE);

I2C_Init(
		 100000, 
		 0xA0, 
		 I2C_DUTYCYCLE_2, 
		 I2C_ACK_CURR, 
		 I2C_ADDMODE_7BIT, 
		 Input_Clock);

I2C_ITConfig( I2C_IT_ERR, DISABLE ); 
I2C_ITConfig( I2C_IT_EVT, DISABLE ); 
I2C_ITConfig( I2C_IT_BUF, DISABLE );
I2C_Cmd(ENABLE);

}






#define DS1307__DEVICE_ADDRESS	0xD0


void DS1307_ReadByte(unsigned char *data_ptr, unsigned char len)
{
 	/* Phase of I²C transmission */
 	/* Generate START condition and test on EV5 and clear it */
 	I2C_GenerateSTART(ENABLE);
  	while(!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT)); // Debud modda test ediyorum ve bu satırda kalıyor.ACK alamıyor...
	I2C_ClearFlag(I2C_FLAG_STARTDETECTION );
	
	
 	/* Send slave 7 bits adress and test on EV6 and clear it */
 	I2C_Send7bitAddress(DS1307__DEVICE_ADDRESS, I2C_DIRECTION_RX);
  	while(!I2C_CheckEvent(I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));  //
 	I2C_ClearFlag(I2C_FLAG_ADDRESSSENTMATCHED);     
	
 	/* Wait RXNE=1 EV7 bit is setI2C_Buffer_RX is ready to read */
	while (len--)
	{
		while(!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_RECEIVED));
		*data_ptr= bcd2bin(I2C_ReceiveData());  		
		//I2C_ClearFlag(I2C_FLAG_RXNOTEMPTY);
		data_ptr++;
	}
	/* Generate STOP condition and leave the serial bus free */
	I2C_GenerateSTOP(ENABLE);
}








void main(void)
{
static	unsigned char Time[20];
	unsigned int k;

InitClock(); 
InitPorts();
InitSPI();
InitI2C();

	
	
	for(;;)
	{   
				
		DS1307_ReadByte(&Time[0],5);// RTC den ardışık olarak 5 byte veri oku
		
		
	}
  
}




while(!I2C_CheckEvent(I2C_EVENT_MASTER_MODE_SELECT));


Program bu satırda kalıyor.. Acaba slave cevap mı veremiyor diye scobe ile hattı gözlemliyorum. Masterdan herhangi bir Start Condition alamıyorum... Yani scobe ile gözlemlediğim kadarıyla, sorun masterın start komutunu işletememesi... Yada I2C yi doğru bir şekilde initialize edemedim...

mesaj birleştirme:: 23 Şubat 2013, 11:50:34

Alıntı yapılan: Allegro - 15 Şubat 2013, 14:10:34
bunun tek anlamı var  IAR..

Hocam IAR Embedded Workbench 6.3.16.2187 versiyonunu yükledim. Yalnız yine de benim tam olarak istediklerim yok gibi. MPLABX yavaş ama IAR'dan daha modern bir yapısı var ve daha kullanıcı dostu bir arayüzü var...

mesaj birleştirme:: 23 Şubat 2013, 11:53:01

/////////////////////////////////////////////////////////////////////////////////////////////////7
Edit:  Arkadaşlar mesaj birleştime olayı işte bu gibi durumlarda saçma oluyor biraz. Burada ilk önce bir soru sordum ve ardından 'Allegro'nun önerisine karşı bir yanıt verdim. Fakat şimdi Allegro mesajın üstüne baksa, altında da ona yazdığımı anlayamaz...
???

arm-beginner

@fgokcegoz
STM8 gibi bir MCU varlığından haberdar ettiğiniz için teşekkür etmek istemişdim.
ST'nin web sitesine sürekli girip çıkmama rağmen STM8'lere bir göz atmak hiç aklıma gelmemişdi.
STM32 ile ürettiğim bir cihazı şimdi çok daha ucuza STM8 ile üretiyorum.



fgokcegoz

Alıntı yapılan: arm-beginner - 26 Nisan 2013, 11:20:58
@fgokcegoz
STM8 gibi bir MCU varlığından haberdar ettiğiniz için teşekkür etmek istemişdim.
ST'nin web sitesine sürekli girip çıkmama rağmen STM8'lere bir göz atmak hiç aklıma gelmemişdi.
STM32 ile ürettiğim bir cihazı şimdi çok daha ucuza STM8 ile üretiyorum.


Ben teşekkür ederim... STM8 gözardı edilen bir mcu ailesi, maalesef ki... Ama yavaş yavaş tasarımcılar farkedip kullanmaya başladılar... Devamıda gelir inşallah...
"Vicdanın ziyası, ulûm-u diniyedir. Aklın nuru, fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder." (Bediüzzaman Said Nursi)

tesladream

Hocam ARM ile ilgili bir yazı dizisi çıkarabilir misiniz? Deneyimlerinizden faydalanmak bizim gibi yeni başlayan arkadaşlar için çok önemli.
Saygılarımla

frederic

Aynen hocam sizin anlatımınızın yerini tutmuyor hiç bir arm kaynağı.

diot

stm8 için en iyi derleyici hangisi acaba.? Ne tavsiye edersiniz..

ilhan_mkp

st sitesinde sorunmu var stm studio indiremiyorum debug yaparken değişkenleri görmenin tek yolu stm studiomu alternatifi yokmu acaba.