Video: cara mengetahui kerusakan elektronik 2024
Subrutin PBASIC sangat berharga dalam proyek elektronik Anda menggunakan prosesor Stamp BASIC. A subroutine adalah bagian dari program yang dapat dipanggil dari lokasi manapun dalam program ini. Ketika subrutin selesai, kontrol program akan kembali ke lokasi dari mana subrutin dipanggil.
Subrutin berguna karena memungkinkan Anda memisahkan bagian program Anda dari lingkaran utama program, yang menyederhanakan lingkaran program utama agar lebih mudah dipahami. Manfaat lain dari subrutin adalah bahwa mereka dapat membuat program Anda lebih kecil.
Misalkan Anda menulis sebuah program yang perlu melakukan perhitungan rumit beberapa kali. Jika Anda menempatkan perhitungan rumit dalam subrutin, Anda dapat memanggil subrutin dari beberapa tempat dalam program. Dengan begitu, Anda menulis kode yang melakukan perhitungan rumit hanya satu kali.
Untuk membuat dan menggunakan subrutin, Anda perlu menggunakan dua perintah PBASIC. Yang pertama adalah GOSUB, yang memanggil subrutin. Anda biasanya menggunakan perintah GOSUB dalam lingkaran utama program Anda kapan pun Anda ingin memanggil subrutin. Perintah kedua adalah RETURN, yang selalu merupakan perintah terakhir di subrutin.
Untuk membuat subrutin, Anda akan memulai dengan label dan diakhiri dengan perintah RETURN. Di antara mereka, Anda menulis perintah apa pun yang ingin Anda jalankan saat subrutin dipanggil.
Berikut adalah contoh subrutin yang menghasilkan angka acak antara 1 dan 999 dan menyimpannya dalam variabel bernama Rnd:
GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN
Untuk memanggil subrutin ini, Anda hanya akan menggunakan perintah GOSUB seperti ini:
GOSUB GetRandom
Perintah GOSUB ini mentransfer kontrol ke label GetRandom. Kemudian, ketika subrutin GetRandom mencapai perintah RETURN-nya, kontrol melompat kembali ke perintah segera setelah perintah GOSUB.
Berikut adalah program lengkap yang menggunakan subrutin untuk mendapatkan nomor acak antara 1 dan 1, 000 dan menggunakan nomor acak yang menyebabkan LED pada pin 0 berkedip pada interval acak. Anda dapat menjalankan program ini pada rangkaian Basic Stamp yang memiliki LED pada pin 0.
'LED Blinker Programme' Doug Lowe '10 Juli 2011 "Program ini berkedip LED pada pin 0 secara acak.' {$ STAMP BS2} '{$ PBASIC 2. 5} Rnd VAR Kata Led1 PIN 0 DO GOSUB GetRandom HIGH Led1 PAUSE Rnd LOW Led1 PAUSE 100 LOOP GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN
Bila Anda menggunakan subrutin, ini penting bahwa Anda mencegah program Anda dari sengaja "jatuh ke" subrutin Anda dan menjalankannya saat Anda tidak berniat melakukannya.Sebagai contoh, misalkan program pada Listing 3-5 menggunakan loop FOR-NEXT daripada loop DO karena Anda ingin mengedipkan LED hanya 100 kali. Inilah contoh bagaimana tidak menulis program itu:
FOR Counter = 1 TO 100 GOSUB GetRandom HIGH Led1 PAUSE Rnd RENDAH Led1 PAUSE 100 NEXT GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN
Apakah kamu melihat mengapa? Setelah loop FOR-NEXT berkedip LED 100 kali, program akan dilanjutkan dengan perintah berikutnya setelah loop FOR-NEXT, yang merupakan subrutin!
Untuk mencegah hal itu terjadi, Anda dapat menggunakan perintah PBASIC lainnya, END, yang hanya memberi tahu Stamp BASIC bahwa Anda telah mencapai akhir program Anda, jadi sebaiknya berhenti mengeksekusi perintah. Anda akan menempatkan perintah END setelah perintah NEXT, seperti ini:
FOR Counter = 1 TO 100 GOSUB GetRandom HIGH Led1 PAUSE Rnd RENDAH Led1 PAUSE 100 NEXT END GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN > Kemudian, program akan berhenti setelah loop FOR-NEXT selesai.