Anda di halaman 1dari 1

Karena kunci WAKEUP terhubung ke resistor eksternal, PA0 akan mengeluarkan level tinggi

ketika menekan tombol WAKEUP. Dalam konfigurasi GPIO, tetapkan PA0 sebagai pemicu tepi
naik. Pilih Tidak ada pull-up dan tidak ada pull-down di opsi GPIO Pull-up / Pull-down. Di
kotak label pengguna, tambahkan label WAKEUP.

Dalam NVIC, periksa opsi EXTI Line0 interrupt untuk mengaktifkan interupsi PA0. Dan dua
opsi di sebelah kanan digunakan untuk menetapkan prioritas preemption dan sub prioritas. Di
sini, kami tetap pengaturan default. Di sini kita akan segera memperkenalkan apa itu NVIC
(Nested Vector Interrupt Controller). NVIC digunakan untuk mengontrol respons interupsi. Ada
tiga parameter yang terlibat, Aktifkan kotak centang, prioritas Preemption dan Sub prioritas
(nilai tertinggi, terendah prioritas).

Menggunakan kotak centang Aktifkan, Anda dapat memeriksa / tidak centang untuk
mengaktifkan / menonaktifkan interupsi. Dalam kasus interupsi diaktifkan, program yang sedang
berjalan akan melompat ke rutin layanan interupsi ketika kondisi pemicu interupsi terpenuhi.
Jika tidak, program tidak akan merespon permintaan interupsi.

Prioritas preemption menentukan kemampuan interupsi satu untuk mengganggu yang lain.
Sebagai contoh, interupsi dipicu dan rutinitas interupsi servis yang bersangkutan sedang berjalan,
dan kemudian interupsi B juga terpicu. Jika tingkat prioritas preemption B interrupt lebih tinggi
daripada A interrupt, program akan menghentikan rutin layanan interupsi dan melakukan
rutinitas interupsi B. Jika tingkat prioritas preemption B interrupt lebih rendah daripada A
interrupt, program akan tetap menjalankan rutin layanan interupsi dan tidak akan menjalankan
rutin layanan interupsi B sampai A rutin layanan interupsi selesai.

Sub prioritas mendefinisikan prioritas interupsi. Jika interupsi dengan tingkat prioritas
preemption yang sama dipicu secara bersamaan, yang dengan sub-prioritas lebih tinggi akan
berjalan lebih dulu.

Bagaimana cara menilai tingkat prioritas di antara interupsi? Pertama, Anda harus memeriksa
prioritas preemption. Yang dengan prioritas preemption yang lebih tinggi memiliki prioritas
interupsi yang lebih tinggi. Untuk interupsi dengan prioritas preemption yang sama, yang
memiliki sub-prioritas yang lebih tinggi memiliki prioritas interupsi yang lebih tinggi. Dalam
kasus interupsi dengan prioritas preemption yang sama dan sub prioritas, tabel vektor interupsi
dapat membantu Anda untuk mengetahui mana yang memiliki tingkat prioritas yang lebih tinggi.
Berikut ini adalah bagian dari tabel vektor interupsi. Untuk informasi lebih lanjut, silakan
merujuk ke tabel 43. Tabel vektor STM32F75xxx dan STM32F74xxx di File: STM32F745-
STM32F746-Datasheet.pdf.

Di sini kita akan mengilustrasikan kelompok tingkat prioritas. STM32 memiliki 4 bit untuk
menentukan tingkat prioritas preempt dan level sub-prioritas. Kelompok tingkat prioritas
mengalokasikan 4 bit dalam register tingkat prioritas untuk nomor prioritas tingkat prioritas
preempt dan tingkat sub-prioritas. Misalnya, 3 bit untuk tingkat prioritas preempt (Ada 2 ^ 3 = 8
level), dan 1 bit untuk tingkat sub-prioritas. (Ada 2 ^ 1 = 2 level)

Anda mungkin juga menyukai