Isi kandungan:
- Langkah 1: Pengendali Ganggu
- Langkah 2: Tetapkan Selang Masa Berkala
- Langkah 3: Mengganggu Permulaan
- Langkah 4: Tempat Menambah Kod Anda
Video: Arduino - Selang Berkala: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Instructable ini adalah mengenai penggunaan gangguan berkala untuk masa dalam program Arduino. Ini adalah langkah untuk pengaturcara Arduino yang baru tahu bahawa Arduino dapat melakukan lebih banyak perkara, tetapi tidak tahu bagaimana mewujudkannya.
Sekiranya terdapat masalah prestasi, saya mengandaikan bahawa anda menggunakan satu atau lebih fungsi kelewatan (). Caranya adalah dengan menyingkirkan kelewatan fungsi dan menggantikan gangguan. Fungsi delay () memaksa Arduino tidak melakukan apa-apa sementara menunggu kelewatan () selesai. Menggunakan gangguan membolehkan program anda melakukan perkara lain sementara menunggu akhir penundaan. Biasanya terdapat sejumlah besar waktu mati yang tidak digunakan yang dapat digunakan untuk perkara lain ketika menggunakan penundaan (). Menggunakan gangguan dapat menyelesaikan masalah ini.
Langkah 1: Pengendali Ganggu
1. Tambahkan pengendali gangguan ke program anda. Cukup salin dan tampal di suatu tempat di atas persediaan ();
const tidak ditandatangani panjang TIMER0_COUNT = 500; // Selang pemasa 500 msec
// TIMER0 interrupt handler volatile bool time = false; ISR (TIMER0_COMPA_vect) {kiraan panjang yang tidak ditandatangani statik = 0; jika (kiraan ++> TIMER0_COUNT) {kiraan = 0; masa = benar; // masa ditetapkan menjadi benar setiap TIMER0_COUNT ms} // (masa perlu dihapus dalam rutin utama)}
Langkah 2: Tetapkan Selang Masa Berkala
2. Tetapkan selang masa. Ini piggyback rutin menjadi gangguan TIMER0, yang disala setiap ~ 1 msec.
"Selang" anda ialah bilangan gangguan TIMER0 untuk diproses. Setiap selang ~ 1 msec, jadi anda benar-benar menetapkan berapa TIMER0 gangguan yang akan dikira sebelum mengaktifkan selang anda. IOW, tetapkan TIMER0_COUNT pemboleh ubah kepada seberapa banyak milisaat yang anda mahu tunggu. Contohnya, gunakan 500 selama satu setengah saat. Gunakan 3000 selama 3 saat.
Langkah 3: Mengganggu Permulaan
3. Tambahkan kod "inisialisasi TIMER0" ke kaedah persediaan () anda. Sekali lagi, salin dan tampal dalam persediaan ().
// *** Permulaan TIMER0 ***
cli (); // matikan semua gangguan TIMSK0 = 0; // matikan pemasa0 untuk jitter yang lebih rendah OCR0A = 0xBB; // kiraan gangguan sewenang-wenang TIMSK0 | = _BV (OCIE0A); // piggy kembali ke mengganggu sei (); // menghidupkan gangguan kembali
Langkah 4: Tempat Menambah Kod Anda
4. Tambahkan kod "pemeriksaan masa" ke kaedah gelung anda (). Salin dan tampal dalam gelung ().
sekiranya (masa) {
masa = salah; // buat sesuatu di sini}
The "time = false;" garis adalah penting. Tanpa baris ini baris "lakukan sesuatu di sini" akan dilaksanakan setiap kali program melaksanakan gelung ().
Sudah tentu, anda mengganti aktiviti anda sendiri dalam baris "buat sesuatu di sini". Mulakan dengan mencetak beberapa teks atau memancarkan LED.
Anda sudah selesai!
Disyorkan:
Laporan Berkala Excel: 6 Langkah
Laporan Berkala Excel: Berikut adalah petua saya untuk laporan penggunaan berkala di Excel 2010. Dalam video tutorial di bawah, laporan ini memberitahu kami mengenai penggunaan elektrik, air, oksigen, nitrogen per tan produk siap, mengikut mingguan, bulanan, suku tahunan
Como Construir Un Pentágono Con Geogebra Berkala: 6 Langkah
Como Construir Un Pentágono Con Geogebra Biasa: Aqu í se brindar á un instrivivo para construir un pent á gono usando geogebra biasa
Pengangkatan Akustik Dengan Arduino Uno Langkah demi Langkah (8-langkah): 8 Langkah
Acoustic Levitation With Arduino Uno Step-by Step (8-step): transduser suara ultrasonik L298N Dc power adaptor wanita dengan pin dc lelaki Arduino UNOBreadboardBagaimana ini berfungsi: Pertama, anda memuat naik kod ke Arduino Uno (ia adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk menukar kod (C ++)
Buat Kotak Makan Tengah Hari Berterusan Berkala: 16 Langkah
Buat Kotak Makan Siang Suhu Tetap Berwaktu: Walaupun kotak makan tengah hari memasak biasa mudah digunakan dan dikendalikan tetapi mempunyai satu fungsi, tidak mungkin menetapkan waktu atau menetapkan suhu menjadi panas. Untuk memperbaiki kekurangan ini, kali ini DIY dibuat berdasarkan alat memasak
Jadual Berkala LED Interaktif: 12 Langkah (dengan Gambar)
Jadual Berkala LED Interaktif: Saya dan teman wanita saya mempunyai koleksi elemen - contoh potongan bahan yang unik yang membentuk semua perkara di alam semesta! Untuk koleksi yang begitu menarik, saya memutuskan untuk membuat casing yang memamerkan sampel di seluruh dunia mereka