IAR ile STM8S – Beeper ve Timer

  • 3 sene önce, Baran EKREM yazdı.
  • 4 Yorum
  • 914 Kişi Okudu

STM8S serisine kaldığımız yerden devam edecek olursak öncelikle hoşuma giden bir özelliği inceleyeceğiz. Sanırım sesi geldi bile BEEEP ! 🙂 Beeper modülü işlemci içerisinde bulunan bir buzzer kontrolcüsü gibi düşünülebilir. 3 farklı frekans da sinyal üreterek farklı ses ihtiyaçlarınızı oldukça hızlı bir şekilde karşılar. Normalde bu işi yapmak için bir tane Timer harcamak küçük işlemcilerde biraz fazla olabilir. Beeper 1, 2 ve 4kHz’lik çıkış sinyalleri mevcuttur. Kullanımı oldukça basit olan bu modül sadece kalibrasyon fonksiyonunu ihtiyaç duyar. Kalibrasyon işlemini bir kere yaptıktan sonra frekans’ı seçip modülü çalıştırabilirsiniz. Beeper kalibrasyon için bir tane Timer’a ihtiyaç duyar. (Devamını Oku)

IAR ile STM8S – Clock, CCO ve GPIO

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 1.022 Kişi Okudu

Bir önceki yazıda proje oluşturmayı ve basit bir led örneğini tamamlamıştık. Bu yazıda Clock ayarlarının nasıl yapıldığını ve temel GPIO komutlarının nasıl kullanıldığını göreceğiz. Öncelikle şunu belirtmek gerekirse ST yayınladığını standart kütüphanesi ile işleri bir hayli rahatlatıp basite indirgemiş. Kullandığınız kütüphane fonksiyonları tamamen elinizin altında. Yapacağı işin dışınca herhangi bir şeye müdahale etmiyor. Bu sayede register’leri kontrollü bir şekilde takip ediyor ve olağan dışı durumlar ile karşılaşmıyorsunuz. CCS C kullananlar bu durumlardan bir kaçını tecrübe etmiştir. İlk olarak yapılması gereken işlem her zaman olduğu gibi Clock ayarlarıdır. (Devamını Oku)

IAR ile STM8S – Giriş

  • 3 sene önce, Baran EKREM yazdı.
  • 10 Yorum
  • 1.359 Kişi Okudu

Bundan yaklaşık bir kaç ay önce STM8 programlamaya başlamak istiyordum fakat ST Visual Develop beni bu işten bir hayli soğuttu. Anlam verilemeyen derleme hataları ve eski IDE yapısı ile çok kullanışsız olduğunun farkına vardım. Kenarda duran STM8S leri denemek için IAR’I denemek istediğimde IDE rahatlığı, kod tamamlama, düzgün ve hızlı derleme, Debug yapma gibi özelliklerinin oldukça verimli olduğunu gördüm. Özelikle küçük projelerde kullanılan 8 Bit işlemciler fiyat konusunda kıyasıya yarışıyor. ST’nin STM32F1xx 32 bit olmasına rağmen çok ciddi fiyatlara satılıyor. Bu yüzden 8 bit kullanmak yerine daha ucuz olsun derseniz STM32 bile kullanabilirsiniz. (Devamını Oku)

Cyclic Redundancy Check (CRC Control)

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 438 Kişi Okudu

Haberleşmede toplu veri transferinin vazgeçilmezi olan CRC oldukça faydalı ve onay görmüş bir hata tespit etme yöntemidir. Modbus CanBus ve bir çok haberleşme paketlerinde kullanılan bu yapı veride bozulma varsa bunu tespit etmemize yarıyor. Genellikle 8, 16, 32 bit olarak hesaplanan türlerinden ziyade 15 bitlik halde hesaplanan durumlarda mevcut. Bende CRC ye tasarlayacağım haberleşme paketinde ihtiyaç duydum. Büyük verilerin transferinde CRC şiddetle öneriliyormuş. (Devamını Oku)

C – Dynamic Memory Allocation

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 505 Kişi Okudu

Bu yazıda Dynamic Memory Allocation yani “Dinamik bellek tahsisi” konusundan bahsedeceğim. “Dinamik bellek yönetimi, Dinamik dizi tanımlama” gibi tanımlamalarda bu konunun içinde olacak. Konunun amacı bellekte bizim belirlediğimiz boyutta programımıza özel bir hafıza alanı ayırıp kullanmak ve gerekirse bu alanı genişletebilmek daha sonra işimiz bittiğinde alanı temizleyip serbest bırakmak. (Devamını Oku)

Sıfırdan STM32F0 Dersleri – ADC

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 453 Kişi Okudu

stm32f0discoveryBu yazıda ADC örneği yapacağız.ADC ölçümü için potansiyometre ile gerilimi ölçüp USART ile bilgisayara aktaracağız. ADC bildiğiniz üzere Analog Dijital Converter. ADC de bilinmesi gereken özelliklerden biri çözünürlük. STM32F0 da 12-10-8-6 bit seçenekleri mevcut.Değerleri dijital olarak alacağımızdan olabildiğince hassas olarak alabilmek için 12 bit çözünürlük kullanıyoruz.Seçtiğimiz çözünürlük bize kaç adım(Step-ADC Value) verecek bunu hesaplayalım.Oldukça basit 2^(bit) 12 bit için 2^(12) = 4096 eder. (Devamını Oku)

Sıfırdan STM32F0 Dersleri – SPI (OLED Display)

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 396 Kişi Okudu

stm32f0discoveryBu yazıda SPI kullanımı öğrenerek bir OLED Display süreceğiz.Başlamadan önce ben 128×64 OLED Display kullanacağımı belirteyim.Bu SSD1306 ile sürülen bir Display.Sürücü dosyası mevcut gerekli kodları paylaşacağım.Bu örnek de SPI ile süreceğimiz OLED resmi aşağıda mevcut.Serial Peripheral Interface Bus ya da SPI veri yolu full duplex modda çalışan senkron bir seri veri bağlantısı standardıdır.Master-Slave şeklinde çalışır.Yani bir Master ile bir çok Slave ile haberleşebilirsiniz. (Devamını Oku)

Sıfırdan STM32F0 Dersleri – USART

  • 3 sene önce, Baran EKREM yazdı.
  • 1 Yorum
  • 386 Kişi Okudu

stm32f0discoveryBu yazında en sevdiğim çevre birimi olan USART dan bahsedeceğim.USART : Universal Synchronous/Asynchronous Receiver/Transmitter olarak açılır.Açılımındanda anlaşılacağı üzere senkron ve asenkron olarak çalışabilir.
Temelde 2 pin kullanılır. TX ve RX.
TX Transmitter(Verici) RX Receiver(Alıcı) Anlamına gelir.Herhangi bir cihaz ile bağlantı yapılırken çapraz bağlantı yapılır.
USART’ın ilk yapılması gereken ayarı Baud Rate dir. Baud rate iletişim hızını belirler. Bir diğer nokta ise her seferinde kaç bit gideceğidir. (Devamını Oku)

Sıfırdan STM32F0 Dersleri – Sayıcı (Timer)

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 338 Kişi Okudu

stm32f0discoveryBu yazımda sizlere Timer dan bahsedeceğim.Timer adındanda anlaşılacağı üzere sayıcıdır.Ayarladığımız değerlere göre arkada planda sayım yapar ve bu ayarladığımız değer belirli bir süreye denk gelir ve bu süre dolunca yani timer taşınca bir kesme oluşturur.Yani Timer kesmesi diyebiliriz.Ben bu yazıda kesme özelliğini anlatmaya çalışacağım.İlerki yazılarda PWM içinde kulanıldığını göreceğiz.STM32F051 de bir den çok timer bulunmakta biz 16 bitlik olan Timer3’ü kullanacağız.
Peki bu timer bize ne kazandıracak ? ne işe yarayacak ? Kesme özelliğini kullanıp belirli zamanlarda işlem yapmamızı sağlayabilir.Yani herhangi bir bekleme yapmayarak diğer işlemleri aksatmadan zamanlı olarak çalışmamızı sağlayacak. (Devamını Oku)

Sıfırdan STM32F0 Dersleri – Harici Kesme (External Interrupt)

  • 3 sene önce, Baran EKREM yazdı.
  • 0 Yorum
  • 335 Kişi Okudu

stm32f0discoveryBu yazıda STM32F0 ile External Interrupt (Harici Kesme) yi göreceğiz.Kesmelerden biraz bahsetmek gerekli.Kesmeyi en iyi örnek ile anlayabiliriz.Ana program da bir sürü işimiz var ama arada sırada 1 saniyelik bekleme yapmamız gerekiyor.Bu beklemeleri yaparsak diğer işlerimiz aksayacak o zaman ne yapabiliriz ? Mesela bir timer kurarız.Bu timer 1 saniyeye ayarlanır ve her saniyede bir kere kesme üretir.Kesme oluştuğunda bir değişkeni set ederiz ve ana programda bunu kontrol ederiz.Bu sayede hiç bir işi aksatmadan 1 saniyelik aralıklar ile hiç bir şeyi aksatmadan istediğimiz yapabiliriz. (Devamını Oku)