Professional Documents
Culture Documents
https://micro.furkan.space 2 https://micro.furkan.space
3 https://micro.furkan.space 4 https://micro.furkan.space
Machine Translated by Google
statik int sayısı = 0; • İşleve çağrı yapılmaz • Temel sorun yarış durumudur
Yarış Durumu: Beklenmedik kritik durumlar nedeniyle anormal davranış
• Donanım otomatik olarak
geçersiz düğmesiISR(geçersiz) { olayların zamanlamasının göreceli bağına bağımlılık. Örneğin sonucu
// LED'i değiştir
servise atlar
kod okuma ve yazmanın göreceli zamanlamasına bağlıdır
GPIOC->ODR ^= (1 << 6); kesinti operasyonlar.
sayım++; • Değişkenlerin olması gerekiyorsa
• Ön alım, ISR'nin diğer kodu kesmesine ve muhtemelen verilerin üzerine
}
paylaşılıyorsa global yazmasına olanak tanır
// Hiçbir şey yapma açısından dikkatli Kritik kod bölümü: Olası bir kod oluşturan kod bölümü
7 https://micro.furkan.space 8 https://micro.furkan.space
Machine Translated by Google
9 https://micro.furkan.space 10 https://micro.furkan.space
yapılandırılabilir. (OSPEEDR)
• Her bir I/O pini, dahili yukarı veya aşağı çekme özelliğine sahip olacak
konuşacağız ve kullanacağız.
11 https://micro.furkan.space 12 https://micro.furkan.space
Machine Translated by Google
• Bazen dışarıdan gelen bir sinyaldeki değişikliğin farkına • Farklı bağlantı noktalarından aynı pin numarası
varıp o değişime göre hareket etmek isteriz. Aynı kesme rutinine MUX uygulandı
• Bu basit bir düğmeye basmak veya bir
iletişim sinyali.
• Ayrıca CPU için uyku modlarından uyandırma kaynağı
olarak da çalışabilir.
• Mikrodenetleyiciler genellikle bu tür durumlar için 1
veya daha fazla kesme özellikli pin içerir.
13 https://micro.furkan.space 14 https://micro.furkan.space
15 https://micro.furkan.space 16 https://micro.furkan.space
Machine Translated by Google
EXTI->EXTICR[0] |= (2U << 8*1); // PortC MUX'u seçin. 0'da 0-3, • Zaman tutma , gömülü sistemler için önemli bir
1'de 4-7, 2'de 8-11, 3'te 12-15 bulunur kavramdır ve genellikle tam zamanlama bilgisi
EXTI->FTSR1 |= (1U << 1); // Px1'de düşen kenar isteriz (özellikle iki olay arasında).
ÇIKIŞ->IMR1 |= (1U << 1); // Px1'i maskele • Bu görevin CPU'ya yüklenmesi tam zamanın
belirlenmesini zorlaştırır ve verimsiz hale getirir.
Daha sonra ilgili kesme isteği için NVIC'yi kurun
• Mikrodenetleyici satıcıları belirli bir zamanlayıcı içerir
Harici Kesmeler 3'e gruplandırılmıştır (işleyicilerin
yanı sıra) temelde özel sayaçlardan oluşan modüller
• EXTI0_1_IRQn bu, verilen değerlere doğru/aşağı doğru sayar ve
• EXTI2_3_IRQn sayımın ne zaman bittiğini gösterir.
• EXTI4_15_IRQn • Bu modüller çeşitli işlevler içerebilir
Tam adlar ve organizasyon için startup_xxx koduna yukarı/aşağı sayma, tek atış, devam eden sayım gibi
göz atın
17 https://micro.furkan.space 18 https://micro.furkan.space
• Diyelim ki bir kronometre uygulamak istiyoruz. G0'da zamanlayıcıyla ilgili farklı modüller var
• 100 us çözünürlükle zamanı ölçün ARM çekirdeğinin içinde
• Geçen süreyi görüntüleyin, ekranı her 10 ms'de bir güncelleyin • SistemTick Zamanlayıcısı
23 https://micro.furkan.space 24 https://micro.furkan.space
Machine Translated by Google
SysTick Zamanlayıcısı SysTick Zamanlayıcısı
• Bir İşletim Sisteminin çoklu görevi desteklemek amacıyla • NVIC'ye entegre edilmiştir ve SysTick istisnası oluşturur
periyodik içerik değiştirme işlemini gerçekleştirmesine izin vermek (#15)
için , programın yürütülmesinin zamanlayıcı gibi bir donanım • Temel 24 bit aşağı sayıcı
aygıtı tarafından kesilmesi gerekir .
• Sıfıra ulaştıktan sonra otomatik olarak yeniden yüklenir ve
• Zamanlayıcı kesintisi tetiklendiğinde bir istisna yeniden yükleme değeri programlanabilir
İşletim sistemi görev zamanlamasını yöneten işleyici yürütülür • İşletim sistemi dışı kullanımlar için, temel zaman işleyişi,
• İşleyici ayrıca diğer işletim sistemi bakım görevlerini
zamanlama ölçümü olarak veya periyodik olarak yürütülmesi
de gerçekleştirebilir.
gereken görevler için bir kesme kaynağı olarak kullanılabilir .
• Cortex-M işlemciler için SysTick adı verilen basit bir zamanlayıcı
• İstisna oluşturma programlanabilir ve eğer devre dışı bırakılırsa
Bu periyodik kesme isteğini oluşturma işlevini gerçekleştirmek
yoklama yöntemiyle, yani sayacın mevcut değerinin kontrol
için işlemcinin içine dahil edilmiştir .
edilmesiyle kullanılabilir.
• İşletim sistemi dışı kullanımlar için bu, genel bir zamanlayıcı görevi görür.
25 https://micro.furkan.space 26 https://micro.furkan.space
27 https://micro.furkan.space 28 https://micro.furkan.space
Machine Translated by Google
SysTick_Config(1000);
29 https://micro.furkan.space 30 https://micro.furkan.space
31 https://micro.furkan.space 32 https://micro.furkan.space
Machine Translated by Google
33 https://micro.furkan.space 34 https://micro.furkan.space
Bu hafta
35 https://micro.furkan.space