Bantuan diperlukan tentang interupsi eksternal pada mikrokontroler

S

southafrikanse

Guest
Halo semua Saya menggunakan mikrokontroler AT89S8253 untuk bekerja sebagai Real Time Clock dengan alarm. Sejauh ini begitu baik saya sudah berhasil memprogram jam. Saya menggunakan dua interupsi eksternal mikrokontroler saya (INT0 dan INT1), INT0 dikendalikan oleh sebuah saklar yang bekerja sebagai SET_TIME (dalam lampiran dengan variabel "Horas") sementara INT1 adalah saya SET_ALARM (dalam lampiran dengan variabel "Alarme"). Aku dikompilasi dengan Keil dan ketika saya pergi untuk menguji apakah 2 interupsi bekerja hanya INT0 bekerja. Dapatkah Anda membantu saya menemukan masalah mengapa INT1 tidak bisa bekerja? Saya meminta teman-teman saya apa yang harus saya lakukan tetapi mereka memiliki masalah yang sama dalam proyek mereka. Saya menggunakan bahasa C. Pertanyaan silahkan bertanya. Saya mau ini solusi secepat mungkin dan saya hanya dapat menggunakan interupsi. Salam. Kode saya adalah dalam lampiran.
 
saya tidak bisa membuka file. mungkin itu rusak. mencoba untuk rar lagi dan meng-upload.
 
[Quote = Aupa] saya tidak bisa membuka file. mungkin itu rusak. mencoba untuk rar lagi dan meng-upload [/quote]. Anda harus membukanya dengan notepad.
 
saya tidak pernah bekerja dengan chip ini tapi dari pandangan singkat untuk datasheet dari mikro ini ada IE (interrupt enable register) yang memegang bendera untuk memungkinkan mengganggu vektor interrupt yang berbeda. Anda menangani interrupt mengaktifkan dengan 2 definisi (dari kode sumber Anda): # define D_INT IE = 0x0, # define E_INT IE = 0x81, saya tidak bisa menemukan akses upaya lain untuk IE mendaftar di kode Anda. Tata letak IE adalah: EA - ET2 ES ET1 EX1 ET0 EX0 mana 0 bit memungkinkan bendera untuk INT0 dan bit 2 yang memungkinkan bendera untuk INT1. Ketika menetapkan 0x81 ke IE Anda hanya mengaktifkan INT0. Anda harus menetapkan 0x85: # define E_INT IE = 0x85, bukannya # define E_INT IE = 0x81; Kemudian memperhatikan rutin penanganan interupsi apakah itu benar atau tidak didefinisikan.
 
@ Artem Aku sudah melakukan apa yang Anda menyuruhku. Namun masalah masih ada: |. EDIT: Sudahlah itu bekerja, saya memanggil gangguan alarm di tempat yang salah. terima kasih banyak atas bantuan Anda.
 

Welcome to EDABoard.com

Sponsor

Back
Top