6 0 1 MB
BAB IV Sistem Interupsi pada Nuvoton NUC140 4.1. Tujuan 1. Praktikan dapat mengetahui Sistem Interupsi pada NUC140 2. Praktikan dapat memahami jenis Interupsi berdasarkan modul yang ada 3. Praktikan mengetahui letak komponen-komponen dan Pinout Komponen pada ARM Nuvoton NUC140 beserta penggunaannya pada Sistem interupsi 4. Praktikan mampu memprogram aplikasi sederhana yang melibatkan Interupsi pada Nuvoton NUC140 5. Praktikan mengetahui manfaat Interupsi pada Aplikasi yang dibangun
4.2. Alat dan Bahan Praktikum 4.2.1. ARM Nuvoton NUC140
Gambar 4. 1 ARM Nuvoton NUC140
NUC140 Series adalah ARM Cortex Mikrokontroler dengan M0 Core did alamnya yang cocok digunakan untuk kontrol industri dan aplikasi yang membutuhkan fungsi komunikasi khusus. Cortex M0 adalah prosesor ARM terbaru dengan kinerja 32 bit dengan biaya setara dengan mikrokontroler 8 bit. ARM Nuvoton NUC140 adalah sebuah board dengan arsitekrut ARM yang digunakan sebagai alat utama dalam pratikum ini. (Sumber: Modul 1 Pengenalan Nuvoton NUC140 dan Software Pengembang Nuvoton NUC140 Praktikum Teknik Mikroprosesor 2019)
4.2.2. LCD Dot Matrix 128 x 64
Gambar 4. 2 LCD Dot Matrix 128 x 64
Modul LCD grafis ini terdiri dari driver baris dan driver kolom, dapat menampilkan 128 (kolom) x 64 (baris) dot matrix. Grafik dapat diselesaikan, juga dapat menampilkan 8 x 4 (16 x 16 dot matrix) karakter. Tujuh perintah kontrol dan antarmuka CPU menggunakan 8 bit data bus input mode output.
Fungsinya menampilkan output dari program yang dibuat di IDE. LCD ini terpasang (integrasi) langsung di board Nuvoton. (Sumber: http://id.panasystech.com/monochrome-lcd/monochrome-cog-cog-lcd/128x64-5v-dotmatrix-cog-graphic-lcd-module.html)
4.2.3. Keypad 3 X 3
Gambar 4. 3 Keypad 3 x 3
Komponen masukan yang berfungsi untuk memberikan trigger ke board Nuvoton menggunakan representasi angka. (Sumber: Laporan Praktikum Modul 2 Teknik Mikroprosesor 2019)
4.2.4. Push Button
Gambar 4. 4 Push Button
Digunakan sebagai masukan dari suatu rangkaian. Apabila ditekan, akan mengubah keadaan yang sudah diatur, dan apabila dilepas akan kembali ke keadaan awal. (Sumber: Laporan Praktikum Modul 1 Teknik Interface dan Peripheral 2019)
4.2.5. LED
Gambar 4. 5 LED
LED merupakan suatu semikonduktor yang memancarkan cahaya monokromatik yang tidak koheren ketika diberi tegangan maju. LED Digunakan untuk sebagai indikator suatu logika maupun keluar dalam praktikum ini. (Sumber: https://id.wikipedia.org/wiki/Diode_pancaran_cahaya)
4.2.6. LED RGB
Gambar 4. 6 LED RGB
Merupakan komponen keluaran berupa LED yang memiliki 3 warna yaitu Merah, Hijau dan Biru. Pin yang digunakan untuk LED RGB adalah GPIOC 12-14. (Sumber: https://nuc140lb.wordpress.com/2015/12/23/nuc140-learning-board-nuc140lb/)
4.2.7. Coocox CoIDE
Gambar 4. 7 Coocox CoIDE
Coocox CoIDE adalah Perangkat Lunak yang terintegrasi untuk pengembangan perangkat keras yang berfokus pada ARM Cortex-M0/M0+/M3/M4 berbasis Mikrokontroller Coocox CoIDE digunakan untuk mengkonfigurasi pin yang digunakan pada ARM Nuvoton. (Sumber : www.coocox.org) 4.2.8. Coocox CoSmart
Gambar 4. 8 Coocox CoSmart
Coocox CoSmart digunakan untuk melakukan integrasi ARM Nuvoton dengan code yang ada dibuat. Aplikasi ini digunakan untuk memilih board beserta pin-pin yang digunakan dalam praktikum. (Sumber: Modul 1 Pengenalan Nuvoton NUC140 dan Software Pengembang Nuvoton NUC140 Praktikum Teknik Mikroprosesor 2019)
4.2.9. Laptop
Gambar 4. 9 Laptop
Laptop atau komputer jinjing adalah komputer bergerak yang berukuran relatif kecil dan ringan, beratnya berkisar dari 1–6 kg, tergantung pada ukuran, bahan, dan spesifikasi laptop tersebut. Laptop digunakan untuk memasang Coocox CoIDE dan berfungsi sebagai pengembangan ARM Nuvoton NUC140 pada praktikum ini. (Sumber: https://id.wikipedia.org/wiki/Laptop)
4.3. Dasar Teori 4.3.1. ARM Nuvoton NUC 140 NUC140 Series adalah ARM Cortex Mikrokontroler dengan M0 Core di dalamnya yang cocok digunakan untuk kontrol industri dan aplikasi yang membutuhkan fungsi komunikasi khusus. Cortex M0 adalah prosesor ARM terbaru dengan kinerja 32 bit dengan biaya setara dengan mikrokontroler 8 bit. NuMicro Seri NUC1xx memiliki inti ARM Cortex M0 yang tertanam dengan kecepatan hingga 50 MHz, dilengkapi dengan memori flash untuk program 32KB/64KB/128KB, SRAM sebesar 4KB/8KB/16KB dan Memori Flash Loader untuk ISP (In System Programming) sebesar 4KB. Selain itu juga dilengkapi dengan berbagai macam periferal, seperti GPIO, Timer, Watchdog Timer, RTC, PDMA, UART, SPI/MICROWIRE, I2C, I2S, PWM, LIN, CAN, PS2, USB 2.0 FS Device, ADC 12 bit, Komparator Analog, Low Voltage Reset, dan Brown Out Detector. Bagan di bawah ini menunjukkan diagram blok dari NuMicro NUC140.
Gambar 4. 10 Blok Diagram Nuvoton NUC140
Berikut ini adalah Gambar dari Learning Board Nuvoton NUC140 disertai dengan keterangan letak dari Komponennya beserta Pinout dari Komponennya :
Gambar 4. 11 Layout Learning Board Nuvoton NUC140 Tabel 4. 1 Komponen beserta Pin pada Nuvoton NUC140
Blok ICE Bridge Nu-Link
UART Push Button
CAN
WAU8822 Codec
LIN
Pin ICE_CLK ICE_DATA
Fungsi Antarmuka SWD
GPB 0
Rx UART0
GPB 1
Tx UART0
GPB 15
INT0
GPD 6
Rx CAN0
GPD 7
Tx CAN0
GPB 12-13
CAN Transceiver Speed
GPC 0
I2SLRCLK
GPC 1
I2SBCLK
GPC 2
I2SDI
GPC 3
I2SDO
GPA 15
I2SMCLK
GPA 8
I2C0 SDA
GPA 9
I2C0 SCL
GPE 14
Line Out Ena / Dis
GPE 15
Line In Ena / Dis
GPB 4
Rx UART1
GPB 5
Tx UART1
GPB 6
LIN Transceiver Wakeup
GPB 7
LIN Trans. Ena / Dis
GPE 0 -7
Baris
GPC 4 - 7
Kolom
GPD 8
SPI3 SS30
GPD 9
SPI3 SPCLK
GPD 10
SPI3 MISO0
GPD 11
SPI3 MOSI0
GPD 14
Lampu Latar LCD
Potensiometer
GPA7
Antarmuka ADC
Buzzer
GPB11
PWM4
Keypad Matrix
GPA 0 - 5
GPIO
Reset
RESET
Reset
GPA 10
I2C1 SDA
GPA 11
I2C1 SCL
GPD 12
Catudaya SD Card
GPD 13
Deteksi SD Card
GPC 8 - 11
Antarmuka SD Card
GPD 0
SPI2 SS20
GPD 1
SPI2 SPCLK
GPD 2
SPI2 MISO0
GPD 3
SPI2 MOSI0
GPD 4
SPI2 MISO1
GPD 5
SPI2 MOSI1
GPA 12
PWM0
GPA 13
PWM1
GPA 14
PWM2
GPC 12 - 15
GPIO
Seven Segment
LCD Panel Dot Matriks
EEPROM
Slot SD Card
Flash
LED
(Sumber: Modul 1 Pengenalan Nuvoton NUC140 dan Software Pengembang Nuvoton NUC140 Praktikum Teknik Mikroprosesor 2019)
4.3.2. Coocox CoIDE Coocox CoIDE adalah software pengembangan environment yang didasarkan pada Eclipse and GCC tool chain, yang telah disesuaikan dan disederhanakan untuk memberikan kemudahan bagi pengguna untuk mengakses mikrokontroler ARM® Cortex®-M.
Gambar 4. 12 Coocox CoIDE (Sumber : https://www.st.com/en/development-tools/coide.html, Modul 1 Pengenalan Nuvoton NUC140 dan Software Pengembang Nuvoton NUC140 Praktikum Teknik Mikroprosesor 2019)
4.3.3. Coocox CoSmart CooCox CoSmart adalah sebuah alat konfigurasi pin pintar dan alat untuk meng-generate kode. CooCox CoSmart menyediakan pengaturan konfigurasi pin multiplexing, deteksi konflik pengaturan pin, generate kode yang efektif dan spesifikasi karakter cell I/O.
Gambar 4. 13 Tampilan Coocox CoSmart (Sumber : https://download.cnet.com/CooCox-CoSmart/3000-2247_4-75558667.html, Modul 1 Pengenalan Nuvoton NUC140 dan Software Pengembang Nuvoton NUC140 Praktikum Teknik Mikroprosesor 2019)
4.3.4. Interupsi Interupsi adalah suatu kejadian atau peristiwa yang menyebabkan mikrokontroler berhenti sejenak untuk melayani interrupt tersebut. Yang harus diperhatikan untuk menggunakan interupsi adalah kita harus tahu sumber-sumber interupsi, vektor layanan interupsi dan yang terpenting rutin layanan interupsi, yaitu subrutin yang akan dikerjakan bila terjadi interupsi. Pada NUC140 terdapat 2 pin Interupsi Eksternal, yaitu INT0 dan INT1. Interupsi Eksternal dapat dibangkitkan apabila ada perubahan logika baik Transisi Naik (Rising Edge) maupun Transisi Turun (Falling Edge) pada Pin Interupsi. Tabel 4. 2 Interupsi Eksternal pada Nuvoton NUC140
Jenis Interupsi
PIN
INT0
GPIOB 14
INT1
GPIOB 15
(Sumber: Modul 3 Sistem Interupsi pada Nuvoton NUC140 Praktikum Teknik Mikroprosesor 2019)
4.4. Langkah Kerja Pertama kita hubungkan Board Nuvoton NUC140 dengan PC. Caranya dengan, colokkan kabel USB ke bagian ICE Bridge Nu-Link di Nuvoton NUC140, dan colokkan sisi lain kabel USB ke USB Port pada PC. 4.4.1. Percobaan Pertama 1.
Buka aplikasi CoSmart, lalu Pilih New Chip
Gambar 4. 14 Aplikasi CoSmart
2.
Kemudian pilih Nuvoton,
Gambar 4. 15 Pilih Chip
3.
Lalu pada NUC140 pilih NUC140VE3CN
Gambar 4. 16 Pilih NUC140VE3CN
4.
Lalu akan muncul tampilan Chip di Panel Utama, kemudian centang GPIOA, GPIOB dan GPIOC
Gambar 4. 17 GPIOA GPIOB GPIOC
5.
Lalu pada bagian Panel Kiri, ubah Pin Enable dari Pin 12 – 14 pada GPIOA menjadi Enable,
Gambar 4. 18 Enable pin 12-14 GPIOA
6.
Lalu Scroll ke bawah dan ubah Mode Control Pin 12 – 14 menjadi Output
Gambar 4. 19 Ubah mode pin menjadi output
7.
Kemudian di Panel Kiri (Configuration), ganti dari GPIOA menjadi GPIOB, lalu ubah Pin Enable dari EINT1 pada GPIOB menjadi Enable,
Gambar 4. 20 Pin EINT1
8.
Lalu Scroll ke bawah dan Ubah Mode menjadi Edge Trigger, dan Tipe menjadi Falling / Low Trigger
Gambar 4. 21 Ubah mode interrupt
9.
Kemudian di Panel Kiri (Configuration), ganti dari GPIOB menjadi GPIOC, lalu ubah Pin 12-15 pada GPIOC menjadi Enable,
Gambar 4. 22 Pin 12-15 GPIOC
10. Setelah itu, Klik Generate, lalu pilih Generate CoIDE Project
Gambar 4. 23 Generate ke CoIDE
11. Lalu masukkan Project Name, dan pilih lokasi untuk menyimpan Project, kemudian klik Finish
Gambar 4. 24 Generate ke CoIDE
12. Kemudain buka Coocox CoIDE, pilih Project, lalu Open Project dan cari Project yang tadi telah dibuat melalui CoSmart
Gambar 4. 25 Buka file hasil generate CoSmart
13. Kemudian setelah itu, klik Open. Lalu klik pada bagian View pilih Configuration
Gambar 4. 26 Configuration
14. Pada bagian Download, pada Erase ganti yang awalnya Erase Effected menjadi Erase Full Chip
Gambar 4. 27 Erase Full Chip
15. Lalu selanjutnya pada Panel Kiri (Project) pilih main.c, kemudian masukkan Source Code yang telah disediakan #include "DrvGPIO.h" #include "DrvSYS.h" void Init(); int main(void) { Init(); while(1) { DrvGPIO_SetBit(E_GPA, 12); DrvGPIO_SetBit(E_GPA, 13); DrvGPIO_SetBit(E_GPA, 14); DrvGPIO_ClrBit(E_GPC,12); DrvSYS_Delay(1000000); DrvGPIO_ClrBit(E_GPC,13);
DrvSYS_Delay(1000000); DrvGPIO_ClrBit(E_GPC,14); DrvSYS_Delay(1000000); DrvGPIO_SetBit(E_GPC,12); DrvSYS_Delay(1000000); DrvGPIO_SetBit(E_GPC,13); DrvSYS_Delay(1000000); DrvGPIO_SetBit(E_GPC,14); DrvSYS_Delay(1000000); } }
16. Pada init.c, kemudian masukkan Source Code yang telah disediakan ke dalam fungsi void pfEINT1Callback(uint32_t u32UserData) void pfEINT1Callback(uint32_t u32UserData) { //add your code //LED Biru Nyala DrvGPIO_ClrBit(E_GPA, 12); DrvGPIO_SetBit(E_GPA, 13); DrvGPIO_SetBit(E_GPA, 14); DrvSYS_Delay(1000000); //LED Hijau Nyala DrvGPIO_SetBit(E_GPA, 12); DrvGPIO_ClrBit(E_GPA, 13); DrvGPIO_SetBit(E_GPA, 14); DrvSYS_Delay(1000000); //LED Merah Nyala DrvGPIO_SetBit(E_GPA, 12); DrvGPIO_SetBit(E_GPA, 13); DrvGPIO_ClrBit(E_GPA, 14); DrvSYS_Delay(1000000); }
Gambar 4. 28 Source Code Init.c
17. Buat fungsi Init() pada init.c dengan kode sebagai berikut
Gambar 4. 29 Source Code Init.c
18. Selanjutnya pilih Project, lalu Build.
Gambar 4. 30 Build Program
19. Kemudian setelah Build Success, maka pilih Flash kemudian Program Download
Gambar 4. 31 Program Download
20. Lalu, amatilah apa yang terjadi bagian Board Nuvoton NUC140 dengan menekan tombol Switch Button 4.4.2. Percobaan Kedua 1. Buka CoSmart, lalu Pilih New Chip
Gambar 4. 32 New Chip
2. Kemudian pilih Nuvoton
Gambar 4. 33 Pilih Nuvoton
3. Lalu pada NUC140 pilih NUC140VE3CN
Gambar 4. 34 Pilih NUC140VE3CN
4. Lalu akan muncul tampilan Chip di Panel Utama, kemudian centang GPIOC, GPIOA dan GPIOE
Gambar 4. 35 Pilih GPIOA GPIOC dan GPIOE
5. Lalu pada bagian Panel Kiri, ubah Pin dari Pin 4 - 7 dan 12 – 14 pada GPIOC menjadi Enable. Seperti percobaan sebelumnya
Gambar 4. 36 Enbale pin 4-7, 12-14 pada GPIOC
6.
Lalu Scroll ke bawah dan ubah Mode Control Pin 4 – 7 dan 12 – 14 menjadi Output
Gambar 4. 37 Ubah mode menjadi output
7. Kemudian di Panel Kiri (Configuration), ganti dari GPIOC menjadi GPIOA, lalu ubah Pin 0-5 pada GPIOA menjadi Enable
Gambar 4. 38 Enbale pin 0-5 pada GPIOA
8. Lalu Scroll ke bawah dan ubah Mode Control Pin 0 -5 menjadi Quasi Bidirectional.
Gambar 4. 39 Ubah mode menjadi Quasi-bidirectional
9. Kemudian di Panel Kiri (Configuration), ganti dari GPIOA menjadi GPIOE, lalu ubah Pin 0-7 pada GPIOE menjadi Enable
Gambar 4. 40 Enbale pin 0-7 pada GPIOE
10. Lalu Scroll ke bawah dan ubah Mode Control Pin 0 -7 menjadi Output.
Gambar 4. 41 Ubah mode menjadi output
11. Setelah itu, Klik Generate, lalu pilih Generate CoIDE Project
Gambar 4. 42 Generate ke CoIDE
12. Lalu masukkan Project Name, dan pilih lokasi untuk menyimpan Project, kemudian klik Finish
Gambar 4. 43 Generate ke CoIDE, pilih lokasi penyimpanan dan nama project
13. Kemudian buka Coocox CoIDE, pilih Project, lalu Open Project dan cari Project yang tadi telah dibuat melalui CoSmart
Gambar 4. 44 Pada CoIDE, pilih lokasi penyimpanan dan nama project
14. Kemudian setelah itu, klik Open. Lalu klik pada bagian View pilih Configuration
Gambar 4. 45 Configuration pada CoIDE
15. Pada bagian Download, pada Erase ganti yang awalnya Erase Effected menjadi Erase Full Chip
Gambar 4. 46 Erase Full Chip
16. Masukan Library ScanKey.h, Seven_Segment.h dan LCDDriver.h ke dalam folder cmsis_lib->include->driver
Gambar 4. 47 Library untuk Driver
17. Masukan Library ScanKey.c dan Seven_Segment.c ke folder cmsis_lib->Src>driver
Gambar 4. 48 Library untuk Src
18. Lalu selanjutnya pada Panel Kiri (Project) pilih main.c, kemudian masukkan Source Code yang telah disediakan #include #include #include #include
"DrvGPIO.h" "DrvSYS.h" "Seven_Segment.h" "Scankey.h"
void Init(); int main(void) { Init(); int8_t Angka, Angka2; OpenKeyPad(); while(1) { DrvGPIO_SetBit(E_GPC, 12); DrvGPIO_SetBit(E_GPC, 13); DrvGPIO_SetBit(E_GPC, 14); DrvSYS_Delay(1000000); DrvGPIO_ClrBit(E_GPC, 12); DrvGPIO_ClrBit(E_GPC, 13); DrvGPIO_ClrBit(E_GPC, 14); DrvSYS_Delay(1000000); while(Scankey()) { Angka = Scankey(); Angka2 = Scankey(); show_seven_segment(2,Angka); show_seven_segment(0,Angka2); DrvSYS_Delay(5000000); close_seven_segment(); } } }
19. Pada Init.c buat fungsi sebagai berikut
Gambar 4. 49 Fungsi init() pada Init.c
20. Selanjutnya pilih Project, lalu Build.
Gambar 4. 50 Build Program
21. Kemudian setelah Build Success, maka pilih Flash kemudian Program Download
Gambar 4. 51 Program Download
22. Lalu, amatilah apa yang terjadi bagian Board Nuvoton NUC140 dengan menekan tombol keypad.
4.5. Hasil dan Analisa Percobaan 4.5.1. Percobaan Pertama Pada percobaan pertama, kita melakukan percobaan interrupt secara eksternal menggunakan push button dengan pin EINT1.
Gambar 4. 52 Kondisi awal while(1) { DrvGPIO_SetBit(E_GPA, 12); DrvGPIO_SetBit(E_GPA, 13); DrvGPIO_SetBit(E_GPA, 14); DrvGPIO_ClrBit(E_GPC,12); DrvSYS_Delay(1000000); DrvGPIO_ClrBit(E_GPC,13); DrvSYS_Delay(1000000); DrvGPIO_ClrBit(E_GPC,14); DrvSYS_Delay(1000000); DrvGPIO_SetBit(E_GPC,12); DrvSYS_Delay(1000000); DrvGPIO_SetBit(E_GPC,13); DrvSYS_Delay(1000000); DrvGPIO_SetBit(E_GPC,14); DrvSYS_Delay(1000000); }
Saat program dijalankan, ketiga LED pada board akan menyala bergantian dengan jeda waktu 1 detik sebelum pindah dari satu LED, ke LED sebelahnya. Saat push button ditekan, maka fungsi di bawah akan terpanggil: DrvGPIO_EnableEINT1(E_IO_FALLING, E_MODE_EDGE, pfEINT1Callback);
Dengan fungsi pfEINT1Callback:
void pfEINT1Callback(uint32_t u32UserData) { //add your code //LED Biru Nyala DrvGPIO_ClrBit(E_GPA, 12); DrvGPIO_SetBit(E_GPA, 13); DrvGPIO_SetBit(E_GPA, 14); DrvSYS_Delay(1000000); //LED Hijau Nyala DrvGPIO_SetBit(E_GPA, 12); DrvGPIO_ClrBit(E_GPA, 13); DrvGPIO_SetBit(E_GPA, 14); DrvSYS_Delay(1000000); //LED Merah Nyala DrvGPIO_SetBit(E_GPA, 12); DrvGPIO_SetBit(E_GPA, 13); DrvGPIO_ClrBit(E_GPA, 14); DrvSYS_Delay(1000000); } }
Maka saat program berjalan, kemudian push button ditekan, kita menjalankan fungsi interrupt pada board yang bersumber dari push button tersebut secara eksternal. Saat fungsi ini dijalankan, LED RGB akan menyala dan LED biasa akan berhenti bekerja sampai fungsi interrupt selesai dijalankan
Gambar 4. 53 Kondisi saat push button ditekan
4.5.2. Percobaan Kedua Pada percobaan kedua, kita menggunakan fungsi interrupt yang asalnya dari internal program itu sendiri dengan kode program utama sebagai berikut: #include #include #include #include
"DrvGPIO.h" "DrvSYS.h" "Seven_Segment.h" "Scankey.h"
void Init(); int main(void) { Init(); int8_t Angka, Angka2; OpenKeyPad(); while(1) { DrvGPIO_SetBit(E_GPC, 12); DrvGPIO_SetBit(E_GPC, 13); DrvGPIO_SetBit(E_GPC, 14); DrvSYS_Delay(1000000); DrvGPIO_ClrBit(E_GPC, 12); DrvGPIO_ClrBit(E_GPC, 13); DrvGPIO_ClrBit(E_GPC, 14); DrvSYS_Delay(1000000); while(Scankey()) { Angka = Scankey(); Angka2 = Scankey(); show_seven_segment(2,Angka); show_seven_segment(0,Angka2); DrvSYS_Delay(5000000); close_seven_segment(); } } }
Pada percobaan ini, tidak menggunakan pin interrupt seperti percobaan sebelumnya. Fungsi interrupt pada program ini memiliki logika: apabila ada tombol yang ditekan pada keypad 3x3 maka akan menampilkan angka pada Seven Segment, maka digunakanlah perintah while(Scankey()) untuk mendapatkan kondisi apakah key pada keypad ditekan atau tidak. Awalnya saat progam dijalankan, board akan menyalakan 3 LED biasa 2 kali dengan jeda 1 detik, kemudian mengecek apakah keypad 3x3 tertekan atau tidak. Apabila tidak ada key yang ditekan, maka program akan kembali ke perintah awal pada blok while(1). Sedangkan apabila tombol ditekan maka akan ditampilkan ke dalam Seven Segment pertama dan ketiga dengan perintah
show_seven_segment(2,Angka);
show_seven_segment(0,Angka2);.
Setelah
itu program akan delay selama 5 detik sebelum Seven Segment dimatikan dengan perintah DrvSYS_Delay(5000000); dan
close_seven_segment();
dan
kemudian akan kembalik ke blok while(1)dan menyalakan ketiga LED biasa sampai key pada keypad 3x3 ditekan kembali.
Gambar 4. 54 Kondisi saat angka 7 ditekan pada keypad 3x3
4.6. Kesimpulan 1. Jika ARM Nuvoton di flash, maka program yang ada di dalamnya akan tertimpa program baru 2. ARM Nuvoton memerlukan library dari luar untuk agar bisa terintegrasi dengan komponen input output (seven segment, lcd, dan sejenisnya) 3. Bahasa yang digunakan adalah bahasa C untuk ARM Nuvoton 4. Interupsi membuat program menahan perintah yang sedang dijalankan dan menjalankan fungsi interupsi tersebut sampai selesai lalu kembali menjalankan program sebelumnya 5. Mekanisme Interupsi pada percobaan pertama menggunakan interupsi secara eksternal 6. Mekanisme Interupsi pada percobaan kedua menggunakan interupsi secara internal 7. Walaupun sama-sama menggunakan trigger dari luar, yang membedakan percobaan 1 dan percobaan 2 adalah pin interupsi digunakan pada percobaan 1 8. Sedangkan interupsi secara internal dapat digunakan semisal suatu kondisi program sudah tercapai dan akan menjalankan suatu fungsi dalam interupsi tersebut 9. Pin interupsi bisa menggunakan semua pin, aturlah Interrupt Enable untuk mengaktifkan fungsi interupsi