Video: Arduino Pan and Tilt Servo Motor Motion Control 2024
PBASIC altyordamları, elektronik projelerinizde BASIC Stamp işlemcisi kullanarak paha biçilmez değerdedir. altprogram , programdaki herhangi bir yerden çağrılabilen bir program bölümdür. Alt program tamamlandığında, programın kontrolü altprogramın çağrıldığı yere geri döner.
Altprogramlar, programınızın uzun bölümlerini programın ana döngüden ayırmanıza izin verdiklerinden yararlıdır, bu da anlamak için ana program döngüsünü basitleştirir. Altprogramların bir diğer yararı, programınızı daha küçük hale getirebilmesidir.
Birkaç kez karmaşık hesaplama yapması gereken bir program yazdığınız varsayılmaktadır. Karmaşık hesaplamayı altprograma yerleştirirseniz, altprogramı programın çeşitli yerlerinden arayabilirsiniz. Bu şekilde, karmaşık hesaplamayı yalnızca bir kez gerçekleştiren kodu yazarsınız.
Altprogramlar oluşturmak ve kullanmak için iki PBASIC komutunu kullanmanız gerekir. İlki altyordam çağıran GOSUB'dur. Altyordam çağırmak istediğinizde, genelde programın ana döngüsü içinde GOSUB komutunu kullanırsınız. İkinci komut her zaman altprogramdaki son komut olan RETURN'dir.
Bir altprogram oluşturmak için bir etiketle başlayın ve bir RETURN komutu ile bitin. Aralarında, altyordam çağrıldığında çalıştırmak istediğiniz komutları yazarsınız.
İşte 1 ile 999 arasında rastgele bir sayı üreten ve Rnd adlı bir değişkene kaydeden bir altprogram örneği var:
GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN
Bu altprogramı çağırmak için, basitçe şöyle bir GOSUB komutu kullanırsınız:
GOSUB GetRandom
Bu GOSUB komutu, kontrolü GetRandom etiketine aktarır. Ardından, GetRandom altyordam RETURN komutuna eriştiğinde, denetim GOSUB komutunun hemen ardından gelen komuta atlar.
Burada, 1 ile 1, 000 arasında rastgele bir sayı almak için bir altyordam kullanan ve rastgele aralıklarla yanıp sönen 0 nolu pimdeki LED'in rastgele sayıyı kullandığı eksiksiz bir program. Bu programı Pin 0'da bir LED bulunan herhangi bir Temel Stamp devresinde çalıştırabilirsiniz.
'LED Yanıp Sönen Program' Doug Lowe 'July 10, 2011 "Bu program pin 0'daki ışığı rasgele yanıp söner.' {$ STAMP BS2} '{$ PBASIC 2. 5} Rnd VAR Word Led1 PIN 0 DO GOSUB GetRandom YÜKSEK Led1 DURAKAT Rnd LOW Led1 DURAKLAT 100 LOOP GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN
Bir altyordam kullandığınızda hayati önem taşır programınızın yanlışlıkla "altprogramınıza" girmesini ve yürütülmesini istemediğiniz zaman uygulamanızı önlemenizdir.Örneğin, Liste 3-5'teki programın LED'i yalnızca 100 kez yanıp sönmek istediğinden DO döngüsü yerine bir FOR-NEXT döngüsü kullandığını varsayalım. değil programının nasıl yazıldığına bir örnek:
Sayaç = 1 TO 100 GOSUB GetRandom YÜKSEK Led1 DURAKLAT Rnd LOW Led1 DURAKLAT 100 SONRAKİ GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 GERİ DÖN
Nedenini anlıyor musun? FOR-NEXT döngüsü LED'i 100 kez yanıp sönmeye başladıktan sonra, program, altprogram olan FOR-NEXT döngüsünden sonraki komut ile devam edecektir!
Bunun olmasını önlemek için, BASIC Stamp'a programınızın sonuna geldiğinizi söyleyen başka bir PBASIC komutu END'yi de kullanabilirsiniz; bu nedenle komutları çalıştırmayı durdurmanız gerekir. END komutu, NEXT komutundan sonra şu şekilde yerleştireceksiniz:
FOR Counter = 1 TO 100 GOSUB GetRandom YÜKSEK Led1 DURAKLAT Rnd LOW Led1 DURAKLAT 100 İLERİ DURDUR GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN > Sonra, FOR-NEXT döngü bittikten sonra program duracaktır.