Arm Tabanlı Mikroişlemciler #03 | Kontrol Yazmaçları ve C ile Bit İşlemleri

Giriş Çıkış Pinleri (GPIO)

Eğitmen: Dr. Süleyman Burak ÇELİK

Ledi yakmak için önce A portunun saatini açmalıyız; bu ayar 32 bitlik bir yazmacın tek bir biti. Aynı yazmaç belleğin ve flaşın saatlerini de tutuyor: yanlış yazarsak ledi yakarken programın kendi belleğini kapatabiliriz. Bu derste mikrodenetleyicinin içine girip kontrol yazmaçlarını ve bir biti ötekilere dokunmadan değiştirmeyi, her bit adımını görerek öğreniyoruz. Bu derste: - Kontrol yazmaçları: bellekte özel adresler; RCC_AHBENR (çevre birimlerinin saatleri), sıfırlama değeri 0x14 = 0001 0100 = 20 - Maske: biri kaydırmak; 1UL kaydır 17 = 0x0002_0000, 1UL kaydır 19 = 0x0008_0000, veya ile 0x000A_0000 = 655360 - CMSIS: RCC yapısının AHBENR alanı, alan adları _Pos (bit konumu) ve _Msk (maske) - Oku, değiştir, yaz: |= ile 0x000A_0014, &= ~ ile 0x0008_0014; düz atama 2. ve 4. biti siler - Çok bitli alan: GPIOA_MODER, pin 5 = bit 10–11, maske 0xC00, sonuç 0x2800_0400 - Düz atama neyi bozar: 13. ve 14. pin hata ayıklama hattı (SWD), bağlantı kopar - Üç tuzak: |= yerine =, temizlerken ~ unutmak, çok bitli alanı yalnız veya ile değiştirmek Bölümler: 0:00 Geçen Ders ve Bugün 0:21 Ledin Saati: Tek Bir Bit 0:44 Kontrol Yazmaçları 1:22 Maske: Biri Kaydırmak 2:13 CMSIS Adları 2:44 Oku, Değiştir, Yaz 3:34 Çok Bitli Alan: MODER 4:26 Düz Atama Neyi Bozar? 4:56 Üç Tuzak 5:22 Özet ve Sıradaki Ders Sıradaki derste bu araçlarla ilk ledimizi yakıyoruz: saat kapısı, pin çoklayıcı ve giriş/çıkış modülü. Kaynak kitap: Alexander G. Dean, Embedded Systems Fundamentals with Arm Cortex-M based Microcontrollers, Nucleo-F091RC 2. baskı (Arm Education Media) — Bölüm 2, s. 32–38 (konu sırası ve kavramlar). Örnekler özgündür. Elektrik-Elektronik, Bilgisayar, Mekatronik ve Kontrol Mühendisliği öğrencileri için Arm Tabanlı Mikroişlemciler serisinin üçüncü dersi.