Merhaba arkadaşlar. Bir süredir stm8s mikrodenetleyicileri ile ilgileniyorum. Elimden geldiğince bu konuda bir yazı dizisi hazırlıyorum. Şuan itibariyle 17 yazı oldu. İlgilenen arkadaşlara faydalı olabilmek niyetiyle...
http://www.mcu-turkey.com/stm8-vl-discovery-kiti-ve-stm8s-ailesi/ (http://www.mcu-turkey.com/stm8-vl-discovery-kiti-ve-stm8s-ailesi/)
http://www.mcu-turkey.com/stm8s-vld-ilk-uygulama-clock-ve-gpio-konfigurasyonu/ (http://www.mcu-turkey.com/stm8s-vld-ilk-uygulama-clock-ve-gpio-konfigurasyonu/)
http://www.mcu-turkey.com/stm8s-vld-7segment-display-tarama-timer-konfigurasyonu/ (http://www.mcu-turkey.com/stm8s-vld-7segment-display-tarama-timer-konfigurasyonu/)
http://www.mcu-turkey.com/stm8s-3-kanal-pwm-sinyali-uretimi/ (http://www.mcu-turkey.com/stm8s-3-kanal-pwm-sinyali-uretimi/)
http://www.mcu-turkey.com/stm8s-piezo-buzzer-uygulamasi-beeper-modulu/ (http://www.mcu-turkey.com/stm8s-piezo-buzzer-uygulamasi-beeper-modulu/)
http://www.mcu-turkey.com/stm8s-dc-motor-hiz-ayari-adc-modulu/ (http://www.mcu-turkey.com/stm8s-dc-motor-hiz-ayari-adc-modulu/)
http://www.mcu-turkey.com/stm8s-stm-studio-kullanimi-ve-harici-kesmeler/ (http://www.mcu-turkey.com/stm8s-stm-studio-kullanimi-ve-harici-kesmeler/)
http://www.mcu-turkey.com/stm8s-uart-modulu-kullanimi/ (http://www.mcu-turkey.com/stm8s-uart-modulu-kullanimi/)
http://www.mcu-turkey.com/stm8s-iwdgindependent-watchdog-modulu-kullanimi/ (http://www.mcu-turkey.com/stm8s-iwdgindependent-watchdog-modulu-kullanimi/)
http://www.mcu-turkey.com/stm8s-eeprom-hafiza-bolgesine-erisim/ (http://www.mcu-turkey.com/stm8s-eeprom-hafiza-bolgesine-erisim/)
http://www.mcu-turkey.com/stm8s-spi-modulu-kullanimi-ve-harici-dac-uygulamasi/ (http://www.mcu-turkey.com/stm8s-spi-modulu-kullanimi-ve-harici-dac-uygulamasi/)
http://www.mcu-turkey.com/stm8s-2x16-karakter-lcd-surulmesi/ (http://www.mcu-turkey.com/stm8s-2x16-karakter-lcd-surulmesi/)
http://www.mcu-turkey.com/stm8s-derleyici-tanimli-ekstra-ozellikler/ (http://www.mcu-turkey.com/stm8s-derleyici-tanimli-ekstra-ozellikler/)
http://www.mcu-turkey.com/stm8s-stvd-uzerinde-cosmic-c-derleyicisi-kurulumu-ve-kullanimi/ (http://www.mcu-turkey.com/stm8s-stvd-uzerinde-cosmic-c-derleyicisi-kurulumu-ve-kullanimi/)
http://www.mcu-turkey.com/stm8s-3310-lcd-ekran-ile-dijital-kronometre/ (http://www.mcu-turkey.com/stm8s-3310-lcd-ekran-ile-dijital-kronometre/)
http://www.mcu-turkey.com/stm8s-hc-06-bluetooth-modul-ile-haberlesme-uygulamasi/ (http://www.mcu-turkey.com/stm8s-hc-06-bluetooth-modul-ile-haberlesme-uygulamasi/)
http://www.mcu-turkey.com/stm8s-capture-ozelligi-ile-frekans-olcumu/ (http://www.mcu-turkey.com/stm8s-capture-ozelligi-ile-frekans-olcumu/)
Çok güzel bir paylaşım Hocam , emeklerinize sağlık ...
Emeğinize sağlık, peki bu STM8 kitinin ve entegrelerini nerden temin ettiniz?
Alıntı yapılan: serhat1990 - 12 Kasım 2012, 22:36:40
Çok güzel bir paylaşım Hocam , emeklerinize sağlık ...
Teşekkür ederim. Faydalı olabilirsek, ne mutlu..
Alıntı yapılan: Elektroemre - 12 Kasım 2012, 22:42:07
Emeğinize sağlık, peki bu STM8 kitinin ve entegrelerini nerden temin ettiniz?
Empa Elektronik..
7.yazımıda eklemiş bulunuyorum. İlgilenenlere duyurulur...
http://www.mcu-turkey.com/stm8s-stm-studio-kullanimi-ve-harici-kesmeler/ (http://www.mcu-turkey.com/stm8s-stm-studio-kullanimi-ve-harici-kesmeler/)
teşekkürler hocam, güzel bir yazı dizisi olmuş.
Tebrik ediyorum, i2c ve spi üzerine de bir yazı olursa süper olur..
Tebrikler Hocam,elinize sağlık.
Rica ederim arkadaşlar, ben teşekkür ediyorum. Bu arada UART birimi ile ilgili son yazımı yayınlamış bulunuyorum. Devamıda gelecek... I2C ve SPI birimleride olacak bu yazı dizisinin içinde inşallah.
http://www.mcu-turkey.com/stm8s-uart-modulu-kullanimi/ (http://www.mcu-turkey.com/stm8s-uart-modulu-kullanimi/)
Keşke forumda STM8 ile alakalı bir alt başlık olsa.. STM8, 8 bit ailesinde fiyat ve performans açısından en güçlü mikrodenetleyicilerden. Bu noktada faydalı olacağı kanaatindeyim...
Merhaba arkadaşlar, IWDG(Independent Watchdog) birimi hakkında yeni yazımı eklemiş bulunuyorum. Takip edenlere faydalı olabilir.
http://www.mcu-turkey.com/stm8s-iwdgindependent-watchdog-modulu-kullanimi/ (http://www.mcu-turkey.com/stm8s-iwdgindependent-watchdog-modulu-kullanimi/)
EEPROM Memory hakkında olan 10.yazı eklenmiştir. Bilginize...
http://www.mcu-turkey.com/stm8s-eeprom-hafiza-bolgesine-erisim/ (http://www.mcu-turkey.com/stm8s-eeprom-hafiza-bolgesine-erisim/)
Emeğinize sağlık hocam, takipteyiz.
Alıntı yapılan: AST - 28 Kasım 2012, 23:55:00
Emeğinize sağlık hocam, takipteyiz.
Yazılar devam edecek... STM8S serisi hakkında birçok bilgi açığa çıkacak inşallah... STM8 e hakettiği değer verilmediğini düşünüyorum. Çünkü 8bit ailesinde çok üst noktalarda bence...
STM8S esasen çok yetenekli bir mikroişlemci serisi, 32 bitlik arm işlemcilerde bulunan çevre donanımları bütünü ile bu işlemciye de adapte edilmiş. 32 bitlik arm işlemciler için kullanılan firmware tabanlı kodlar büyük oranda benzer. Bugün 8 bitlik stm8 lerde kod yazıp ilerde kolayca 32 bitlik platforma taşımanız mümkün. Özellikle güçlü 3 faz motor kontrolu için optimize edilmiş pwm ve ADC modülü, düşük güç tüketimine uygun stm8l serisi dikkate değer. Umarım en azından stm8s discovery kiti eline alıp sitedeki yazılarınızı izleyen bir kişi başlangıç aşamasındaki acemiliği bir nebze atacaktır. Teşekkürler...
Ben STM8L serisi ile çalışmadım ama STM8S serisi ile çok büyük farkları olduğunu düşünmüyorum. Gerçektende dediğiniz gibi, STM8 8 bitlik aileler içerisinde, gerçekten çok iyi... Bir tek sıkıntısı ST nin kendi C derleyicisinin olmaması. Bizi IAR a veya STVD üzerinde Cosmic kurmaya mecbur kılması..
Raisonance firmasının da stm8 derleyicisi var ancak ben kullanmadım hiç. Yinede cosmic derleyicisi daha hoş ve st nin orjinal örneklerine daha uyumlu olarak görünüyor...
http://www.mcu-raisonance.com/~stm8st7-c-compiler__microcontrollers__tool~tool__T018:4cpm5flha55r.html (http://www.mcu-raisonance.com/~stm8st7-c-compiler__microcontrollers__tool~tool__T018:4cpm5flha55r.html)
Raisonance ıda biliyorum. Kendi IDE si de RIDE isminde... Ama IAR şimdilik işimi rahatlıkla görüyor. Sıkıntısız çalışıyor... Onunda tek sıkıntısı 8KB a derleme imkanı olması. COSMIC in en can alıcı tarafı burada görünüyor, 32KB a kadar ücretsiz derleme imkanı var. Raisonance ta 16K galiba. şimdi baktım 32KB imiş oda.
STM8S serisinin SPI birimi hakkında olan 11. yazımı eklemiş bulunuyorum arkadaşlar... Takip edenlere duyurulur...
http://www.mcu-turkey.com/stm8s-spi-modulu-kullanimi-ve-harici-dac-uygulamasi/ (http://www.mcu-turkey.com/stm8s-spi-modulu-kullanimi-ve-harici-dac-uygulamasi/)
STM8S ile 2x16 Karakter LCD sürülmesi hakkında olan 12.yazı eklenmiştir...
http://www.mcu-turkey.com/stm8s-2x16-karakter-lcd-surulmesi/ (http://www.mcu-turkey.com/stm8s-2x16-karakter-lcd-surulmesi/)
Hocam o kadar kaliteli anlatıyorsunuz ki yazılarınızı baştan sona okumak çok keyifli,bir gün 32 bit bir arm işlemci de anlatırsınız umarım,sizin tarzınız çok hoşuma gidiyor çünkü,hayırlı çalışmalar.
Çok teşekkür ederim, sağolun. ARM işlemciler üzerinde çalışıyorum şuan.(STM32Fx) İnşallah, ARM ile alakalı yazılarda yazacağım. Planlar içerisinde var. Bakalım artık hayırlısı..
13.Yazı eklenmiştir...
http://www.mcu-turkey.com/stm8s-derleyici-tanimli-ekstra-ozellikler/ (http://www.mcu-turkey.com/stm8s-derleyici-tanimli-ekstra-ozellikler/)
14.Yazı eklenmiştir.
STM8S - STVD Üzerine COSMIC C Derleyicisi Kurulumu ve Kullanımı
http://www.mcu-turkey.com/stm8s-stvd-uzerinde-cosmic-c-derleyicisi-kurulumu-ve-kullanimi/ (http://www.mcu-turkey.com/stm8s-stvd-uzerinde-cosmic-c-derleyicisi-kurulumu-ve-kullanimi/)
15.Yazı eklenmiştir.
STM8S – 3310 LCD Ekran ile Dijital Kronometre
http://www.mcu-turkey.com/stm8s-3310-lcd-ekran-ile-dijital-kronometre/ (http://www.mcu-turkey.com/stm8s-3310-lcd-ekran-ile-dijital-kronometre/)
Ferudun Hocam,
Elinize yüreğinize sağlık. Sayenizde arkadaşlarımız, STM8 serisini öğrenip daha basit işlemcilere daha yüksek rakam ödemekten kurtulacaklar.
Yazılarınızı takip ediyor, devamını bekliyoruz inşallah...
Allah kolaylık versin...
hocam ellerinize saglık altın degerinde paylaşımlar bunlar.
Teşekkürler arkadaşlar. Sağolun.. STM8 e hakettiği değerin verilmediği kanaatindeyim bende. İnşallah faydalı olabiliyoruzdur. Vakit buldukça yeni yazılar yazıp paylaşacağım inşallah..
verilmemesi nedeni bu güne kadar kaynak sıkıntısı ve temini gibi sıkıntılar tabi bunda derleyici üreten firmalarında cok büyük rolü var bugun microchip serisi 8 bit işlemciler üzerine onlarca farklı derleyici üretilmiş
siz bir adım atarak gerci bu adım cok büyük. Yapmış oldugunuz projeleri inceledigimde nokta atışı işler yapmışsınız.yeni başlayanlara büyük bir kolaylık olarak onünü acacagını düşünmekteyim. imkanlar olsada bende farklı firmaların işlemcileri üzerine çalışabilsem
Evet bu konuda haklısınız. Derleyici çok önemli bir faktör, mikroişlemci üreticileri için. Açıkçası ben ST nin kendine ait şöyle güzel bir C/C++ derleyicisinin olmasını isterdim. Bakalım, ilerde belki ST bu konuda iyi bir adım atarsa çok iyi olur...
16.Yazı eklenmiştir.
STM8S – HC-06 Bluetooth Modül ile Haberleşme Uygulamaları
http://www.mcu-turkey.com/stm8s-hc-06-bluetooth-modul-ile-haberlesme-uygulamasi/ (http://www.mcu-turkey.com/stm8s-hc-06-bluetooth-modul-ile-haberlesme-uygulamasi/)
ferudun hocam stm ile ilgili yazı dizisi kitap oldu :)
İnşallah güzel bir şekilde pdf formatında toplayabilirimde, istifadeye sunarım inşallah... Biraz daha eksik var ama. Onlarıda tamamlayayımda, ondan sonra bu kitap işini düşünüyorum, inşallah...
17.Yazı eklenmiştir.
STM8S – Capture Özelliği ile Frekans Ölçümü
http://www.mcu-turkey.com/stm8s-capture-ozelligi-ile-frekans-olcumu/ (http://www.mcu-turkey.com/stm8s-capture-ozelligi-ile-frekans-olcumu/)
hocam ilgimi ceken birşey var stm8de niye c portu c1den basliyor c0 neden yok ?
Evet maalesef STM8 in C portunda 0. pin yok. Direk C1 ile başlıyor. Aslında çokta sıkıntı değil. C portunun tüm pinleri HS olarak çalışabiliyor.Örneğin, eğer noktasını kullanmayacaksanız seven segment sürme işlemi gibi işlemleri rahatça yapabilirsiniz.
Güzel bir yazı dizisi olmuş. STM'nin işlemcileriyle uğraşmak isteyenler için iyi bir giriş olacaktır. 32 bit işlemcilerdeki registerlar ile çok benziyorlar.
Alıntı yapılan: LukeSkywalker - 04 Şubat 2013, 07:15:03
Güzel bir yazı dizisi olmuş. STM'nin işlemcileriyle uğraşmak isteyenler için iyi bir giriş olacaktır. 32 bit işlemcilerdeki registerlar ile çok benziyorlar.
Eyvallah, sağolasın. ST nin mikrodenetleyicisi hepsi sonuçta. 32 bitte olsa, 8 bitte olsa, core un etrafındaki peripheraller ST ye ait. Register isimlerinin benzemesi normaldir.
#ferudun hocam,
Sayenizde ben de STM8S ile çalışmalara start verdim. Programlayıcı ve demo kit sipariş ettim. Hatta kendim de bir tane kart çizdim. Temel olarak saat, sıcaklık, display vs. çalışmaları yapacağım ilk önce...
Paylaşımların devamını bekleriz hocam, Dediğiniz gibi bu notları bir pdf olarak toparlayabilirsek, çok güzel bir kaynak olacak...
STM8 e ilginin artması sevindirici birşey. Çalışmalarında şimdiden başarılar dilerim. Yazmak istediğim birkaç konu daha var. Onlarıda tamamladıktan sonra, hepsini toparlayıp bir e-kitap hazırlamayı düşünüyorum, inşallah...
Hocam bir de yazılarınızda STM8S in kendi kütüphaneleri olduğundan bahsetmişsiniz. Fakat mantığının daha iyi anlaşılması bakımından kütüphaneleri kullanmamışsınız sanırım. Bir konu da da o kütüphanelerin kullanımı ile ilgili paylaşımınız olursa, çok faydalı olur...
Evet STM8 in kütüphaneleri var. Ama ben hazır kütüphane kullanımına karşı olduğum için, o şekilde bir çalışma yapmadım. Yapmakta istemiyorum. Bence bir mcu üreticisinin bu konuda yapacağı en iyi iş, hazır kütüphane yayınlamak değil, peripheral leri daha kolay anlayabilmek için daha okunabilir bir datasheet... O yüzden kimseye hazır kütüphane kullanmasını tavsiye etmiyorum. Bu tüm mcu lar için geçerlidir benim için...
ST döküman konusunda sıkıntılı.
Alıntı yapılan: LukeSkywalker - 04 Şubat 2013, 16:45:18
ST döküman konusunda sıkıntılı.
ST nin dökümanları sıkıntılı değil aslında. Peripheral ler ayrıntılı olduğu için mecburiyetten anlaması biraz zor oluyor. Ama alışınca hiçte problem olmuyor.
Lis302dl ile ugrastim son olarak. Çikis data formati datasheette yok. App notun birisinde buldum. Datasheette cikis formati verilmez mi ?
Bu bana gore sikintili bir durum. Registerlarda anlasilmayacak birsey yok fakat okunabilirlik problemli.
Alıntı yapılan: LukeSkywalker - 04 Şubat 2013, 19:38:29
Lis302dl ile ugrastim son olarak. Çikis data formati datasheette yok. App notun birisinde buldum. Datasheette cikis formati verilmez mi ?
Bu bana gore sikintili bir durum. Registerlarda anlasilmayacak birsey yok fakat okunabilirlik problemli.
Hocam olmaması daha doğru olmuş 2000 sayfa katalog oluşturmaktansa proje notlarına dönüştürmüşler. Ayrıca ulaşılmıyacak yerde değil, açıkcası ben beğeniyorum gidişatı başka ne gibi eksikler gördünüz.
İste begenme meselesi, birisi begenir birisi begenmez.
Ben her seyin derli toplu olmasini tercih ederim , birisi de cikar ben daginik severim der. Ben 2000 sayfa katalgu tercih ederim 10 parca olmasindansa. Bahsettigim entegredeki kisim yarim sayfa surer. Datasheette cikisini belirtmeyeceksen datasheet diye neden yazarsin uzerine? Acclerometerdaki en onemli sey nedir? Bence cikis bilgisinin nasil alinacagi ve ne sekilde alinacagidir. Nasil alinacagi var ne sekilde alinacagi yok mesela. Microchipin kataloglari o konuda cok iyi bana gore. Atmelinkiler de öyle.
Alıntı yapılan: LukeSkywalker - 04 Şubat 2013, 20:34:24
İste begenme meselesi, birisi begenir birisi begenmez.
Ben her seyin derli toplu olmasini tercih ederim , birisi de cikar ben daginik severim der. Ben 2000 sayfa katalgu tercih ederim 10 parca olmasindansa. Bahsettigim entegredeki kisim yarim sayfa surer. Datasheette cikisini belirtmeyeceksen datasheet diye neden yazarsin uzerine? Acclerometerdaki en onemli sey nedir? Bence cikis bilgisinin nasil alinacagi ve ne sekilde alinacagidir. Nasil alinacagi var ne sekilde alinacagi yok mesela. Microchipin kataloglari o konuda cok iyi bana gore. Atmelinkiler de öyle.
Hocam aslında datasheet te ilgili bölümle alakalı "şu şu uygulama notlarına bakınız" gibi bir ifade varsa, pek sorun sayılmaz...
hocam stvd için olan header dosyalarında registerler bayte olarak tanımlanmış c ye yeni başlıyorum.
sizin örneğinizde osc oturtma için bir wihile döngüsü var.
void InitClock(void)
{
CLK_ICKR_HSIEN = 1;
while(!CLK_ICKR_HSIRDY);
CLK_CKDIVR = 0x00;
}
while(!CLK_ICKR_HSIRDY); bu kısımı stvd ile yazarken nasıl yazmamız gerekir.
STVD altında hangi derleyiciyi kullanıyorsunuz? Raisonance için bit tanımlaması (x05 serisi için) şöyle:
/* Internal clock control register */
at 0x50c0 hreg CLK_ICKR;
at (((0x50c0)*8UL)+0) hbit CLK_ICKR_HSIEN;
at (((0x50c0)*8UL)+1) hbit CLK_ICKR_HSIRDY;
Cosmic için de header dosyasının başında 8 ve 16 bit tanımlamaları var, derleyicinin kullanma kılavuzunda bit tanımlaması hakkında bilgi vardır sanıyorum.
Ek: fgokcegoz IAR kullandığından bu tanımlamalar önceden yapılmış herhalde, muhtemelen IAR kurulum klasöründe kendi header dosyaları vardır.
Alıntı yapılan: ilhan_mkp - 07 Şubat 2013, 00:19:49
hocam stvd için olan header dosyalarında registerler bayte olarak tanımlanmış c ye yeni başlıyorum.
sizin örneğinizde osc oturtma için bir wihile döngüsü var.
void InitClock(void)
{
CLK_ICKR_HSIEN = 1;
while(!CLK_ICKR_HSIRDY);
CLK_CKDIVR = 0x00;
}
while(!CLK_ICKR_HSIRDY); bu kısımı stvd ile yazarken nasıl yazmamız gerekir.
IAR daki header dosyalarında register lara ait bit tanımlamaları bulunduğu için, o şekilde kullanmamız mümkün oluyor. Fakat STVD üzerinde COSMIC compiler kullanıyorsunuz, dolayısıyla header dosyaları farklı... COSMIC Compiler da şu şekilde kullanabilirsiniz.
void InitClock(void)
{
CLK_ICKR |= 0x01; // CLK_ICKR_HSIEN = 1;
while(!(CLK_ICKR & 0x02)); // while(!CLK_ICKR_HSIRDY);
CLK_CKDIVR = 0x00; // CLK_CKDIVR = 0x00;
}
hocam cevaplarınız için teşekkür ederim zaten c bilmiyorum cosmic headerleri destangibi uzun uzun yazılmış sizin örneklerdeki tanımlamalar daha kısa ve anlaşılır.
gpio tanımları bir tuhaf geldi bana yada ben anlamadım ama tanımlamalar yapılırken datasheette geçen register isimlerine pek benzemeyen bir yapı olmuş.
c diline hakim olmayan yeni başlayanların iar kullanmasını tavsiye ederim stvd+cosmic ikilisini denedim ve hoş olmayışı hakkındaki yazılanlara katılıyorum.
COSMIC teki header lar aslında daha basit. Bit tanımlamaları yok sadece. Byte lar üzerinden erişiyorsunuz. IAR daki header lar daha kapsamlı. Bu yüzden işi kolaylaştırıyor. Neden IAR ı denemiyorsunuzda, STVD+COSMIC ile uğraşıyorsunuz. 32KB a kadar ücretsiz derlemesi mi sizi cezbetti. Ayrıca bu işlerle ilgilenecekseniz, mikroişlemci öğrenmeden önce oturun güzelce C çalışın. Yoksa hep tökezlersiniz çalışmalarınızda. KAAN ASLAN ın A dana Z ye C Klavuzu kitabını alın, şöyle güzelce bir çalışın. Sonra işinizin ne kadar kolaylaştığını kendinizde göreceksiniz....
Alıntı yapılan: fgokcegoz - 08 Şubat 2013, 00:03:50
COSMIC teki header lar aslında daha basit. Bit tanımlamaları yok sadece. Byte lar üzerinden erişiyorsunuz. IAR daki header lar daha kapsamlı. Bu yüzden işi kolaylaştırıyor. Neden IAR ı denemiyorsunuzda, STVD+COSMIC ile uğraşıyorsunuz. 32KB a kadar ücretsiz derlemesi mi sizi cezbetti. Ayrıca bu işlerle ilgilenecekseniz, mikroişlemci öğrenmeden önce oturun güzelce C çalışın. Yoksa hep tökezlersiniz çalışmalarınızda. KAAN ASLAN ın A dana Z ye C Klavuzu kitabını alın, şöyle güzelce bir çalışın. Sonra işinizin ne kadar kolaylaştığını kendinizde göreceksiniz....
Hocam bu arada STM8'de bütün registerlar ve değişkenler "bit adreslenebilir(bit adressable)" mi ? Özel durumlar var mı?
STM8 in register ları bit adreslenebilirdir. Örneğin,
CLK_ICKR_HSIEN = 1; ile CLK_ICKR |= 0x01;
kodlarının ikiside BSET(Bit Set), assembly komutu ile işletilir.
Bit olarak tanımlanmış bir değişkende ise durum aynıdır. Örneğin aşağıdaki gibi tanımlanmış bir bitimiz olsun.
struct xx
{
char b1 :1;
char :7;
}asd;
Yazılım içerisinde asd.b1=1 veya asd.b1=0 gibi komutlar işlettiğinizde bu komutların tamamı BSET(Bit Set) veya BRES(Bit Reset) assembly komutlarıyla koşturulur.
anlaşıldı hocam,
8051 gibi işlemcilerde tüm registerlar , bit adreslenebilir değil. O yüzden sormuştum. Bu şekilde olması daha kullanışlı oluyor...
Alıntı yapılan: alone_lover - 09 Şubat 2013, 10:51:04
anlaşıldı hocam,
8051 gibi işlemcilerde tüm registerlar , bit adreslenebilir değil. O yüzden sormuştum. Bu şekilde olması daha kullanışlı oluyor...
Evet 8051 de tüm register lar bit erişilebilir değildir.. Ama çoğuna erişmek mümkün. Birkaç register da istisna durum var, o kadar. RAM de ise, bit adreslenebilir bölge mevcut. Orada bit tanımlayıp kullanmak mümkün..
hocam bazı örneklerde şöyle bir header var.
#include <intrinsics.h>
bunu neden ekleme amacımız nedir ?
Alıntı yapılan: ilhan_mkp - 13 Şubat 2013, 22:59:53
hocam bazı örneklerde şöyle bir header var.
#include <intrinsics.h>
bunu neden ekleme amacımız nedir ?
Bu eklediğimiz header, mcu ya ait bazı asm komutlarının tanımlamalarını içeriyor. Örneğin;
__enable_interrupt();
__disable_interrupt();
__no_operation();
gibi sık kullandığımız kod satırlarının tanımlamalarını içeriyor. Bu header dosyasını eklemeden, C kodları içerisinde assembly kodlarını yazarak aynı işleri yapabiliriz. Buna örnek olarak şunu verebiliriz, tabi IAR için... (COSMIC için User Guide a bakmak lazım)...
asm("NOP"); // __no_operation(); assembly karşılığı
asm("SIM"); // __enable_interrupt(); assembly karşılığı
asm("RIM"); // __disable_interrupt(); assembly karşılığı
yazımı kolaylaştırmak adına yazılmış bir header dosyası diyebiliriz.
hocam bu arada ben cosmic üzerinde ısrarcı değilim c bilgimin zayıf olması nedeyle iarı indirip kurdum örnekleri derledim.
kit siparişi verdim mali nedenlerden siparişi yeni verdim 5 adette işlemci sipariş ettim.
şimdi kendime merak ettiğim konuları irdelemek için bir pcb hazırlıyorum.
şimdi en önemlisi c öğrenmem.
stm32 kitimde var ama o benim yapmak istediğim işler için çok fazlası olan bir yapı.
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 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.
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 :)
bunun tek anlamı var IAR..
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.
muhittin hocam keil stm8 desteklemiyor.
Anladım Hocam, ben 8 bitten geçince bunlarda olsun anlamışım.
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.
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...
#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...
???
@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.
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...
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
Aynen hocam sizin anlatımınızın yerini tutmuyor hiç bir arm kaynağı.
stm8 için en iyi derleyici hangisi acaba.? Ne tavsiye edersiniz..
st sitesinde sorunmu var stm studio indiremiyorum debug yaparken değişkenleri görmenin tek yolu stm studiomu alternatifi yokmu acaba.
Alıntı yapılan: diot - 07 Haziran 2013, 17:05:21
stm8 için en iyi derleyici hangisi acaba.? Ne tavsiye edersiniz..
Bence IAR
stm8s003k3 p4 ve p5 i2c pinleri bunları input olarak kullanmak isterseniz bu girişlerde pullup direçleri yok datasheete baktım bu konuda bir not düşülmüş ingilizcem yok ama sanırım doğru anladım.
in the open-drain output columm, "T" defines a true open-drain I/O (p-buffer,weak pull-up,and protection diode to vdd are not implemented).
beni 2saat uğraştırdı.
sorun yaşayan olursa diye buraya yazmak istedim.
konuyu hortlatmak gibi olacak ama debug yaparken değişkenlerin değerini görebilmenin bir yolu varmı stm studio iar debugdayken bişi göstermiyor.
debugda adım adım değişken gözlemlemenin bir yolu varmı.
stm8 assembler ile çalışan varmı acaba.
Alıntı yapılan: ilhan_mkp - 29 Aralık 2013, 04:12:52
konuyu hortlatmak gibi olacak ama debug yaparken değişkenlerin değerini görebilmenin bir yolu varmı stm studio iar debugdayken bişi göstermiyor.
debugda adım adım değişken gözlemlemenin bir yolu varmı.
stm8 assembler ile çalışan varmı acaba.
Değişkenlerin değerini görmek istiyorsan, zaten stm studio ya ihtiyacın yok ki. Debug tayken değişkeni seçip sağ tıklayıp, "add to watch"(benzer isimde başka birşeyde olabilir..!) deyip eklersen, değişkenin değerini gözleyebilirsin...
void SendString(const char *s)
{
while(*s)
SendByte(*s++);
}
hocam bu kod parçası uart ile yaptığınız örnekten sorum stm8 ile ilgili değil stringi bittiğini nasıl anlıyor c bilgim hala cok zayıf anlayamadım.
Alıntı yapılan: ilhan_mkp - 14 Haziran 2014, 13:47:57
void SendString(const char *s)
{
while(*s)
SendByte(*s++);
}
hocam bu kod parçası uart ile yaptığınız örnekten sorum stm8 ile ilgili değil stringi bittiğini nasıl anlıyor c bilgim hala cok zayıf anlayamadım.
"s" ismindeki pointer sırasıyla stringin elemanlarını gösteriyor. Stringler son karakteri '\0' dır. Yani while döngüsü sıfırı görene kadar işleniyor. Her döngüde stringin bir elemanı gönderilmek suretiyle, karşı tarafa uart üzerinden gönderilmiş oluyor.
Hocam yanit icin cok teşekkür ederim uzun zamandir bu kafami kurcalayan bir konuydu
Hocam linkler açılmıyor, yenileme şansınız var mı?
linkler sağlam, sıkıntı yok.
konu hortlayacak ama stm8l ile uğraşığ i2c uygulamasını yapabilen var mı ? bayadır uğraşıyorum ama işin içinden çıkamadım
Merhaba arkadaşlar bu kart üzerinden touch button ile uygulama yapıyorum. st nin kendi verdiği touch library i kullanıyorum. hazır olarak aldığım kapasitif butonlar var. benim sorunum şu
st link i usb ye bağlayıp tuş kartını oradan beslerken tuşlar çok stabil çalışıyor ama tuş kartını şebekeye bağladığım zaman tuşların stabilitesi çok bozuluyor. Bir kere basıyorum iknciyi algılamıyor.
bu konuda yardımcı olabilecek varsa çok sevinirim. teşekkürler