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

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.Timer’ın hesaplanmasına bakalım şimdi.
Basit bir formülü var.
Timer3 16 bitlikdir yani maximum 2^16 dan 65536 olur.(0 – 65535)

1 saniyelik kemse için bir örnek üzerinde hesaplayalım.

1 saniyelik kesme için gerekli olan Period ve Prescaler değerlerini bulduk. Şimdi kodlar üzerinde işleyelim.

Öncelikle yapıları tanımlıyorum.

Daha sorna led için C portuna ve timer için APB1’e clock veriyoruz.

LED’i hazırlayalım.Basit GPIO işlemi

Şimdi Timer ayarlarına bakalım.

Bu kesmeyi belirtmek için yine NVIC’i ayarlıyoruz.

Ve işlemler bitince Timer’ı çalışırıyoruz.

Kesme fonskiyonu

Ana programda bunu kontrol ediyoruz.

Programın son hali

 

 

 

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir