Modülerlik senin arkadaşın. Fonksiyonlarınızı basitleştirecek seviyeye kadar, fonksiyonları çağıran fonksiyonları çağırarak işinizi yapmak için ana döngünüzü yazın. Ana döngü ile başlayın ve bir sonraki seviye aşağı, saplama fonksiyonları yapın; boş:
function foo(){
;
}
veya sahte:
function read_temperature(){
return(95);
}
, arama seviyesinin devam edebilmesi için gereken her şeyi döndürmekten başka bir şey yapmaz. Bu düzey çalıştığında, bir düzey aşağı gidin ve benzer şekilde saplama işlevlerini çağıran basit bir kod doldurmaya başlayın. Çalışan bir uygulamanız olana kadar bir seferde bir işlevi yavaş yavaş iptal edin.
Hatalı bir değer döndüren bir işlevde hata ayıklamak veya uygulamanızın geri kalanından herhangi bir etki yaratmadan bir işlev oluşturmak için, iskele oluşturabilirsiniz - işlevi yalnızca bazı örnek değerleri besleyen basit bir çizim ve işlev içinde parametre değerleri yazdırın ve fonksiyonun hangi kısmının başarısız olduğuna dair fikir edene kadar bazı ara değerler. Hatta bir değer geri dönmek için terminalde beni yönlendiren sahte işlevler bile yaptım. (Açıkçası bu teknik sadece sistem insanların nispeten buzul hızını tolere edebiliyorsa işe yarayabilir! İskele için başka bir kullanım.)
Stubbing özellikle donanıma arayüz fonksiyonları için ayakta durmak için iyi çalışır, veri sayfalarına, zamanlama sorunlarına ve aksi takdirde durabilecek diğer minutialara (örneğin, parçalara sahip olmama!) Senin ilerlemen.
Zamanlama sorunlarından bahsetmek, bir çıkış pinini programınızdaki bir ISR'ye giriş ve bir ISR'den çıkmak gibi değiştirmek, size Arduino pininde frekansı veya görev döngüsü size dahili zamanlama hakkında bir fikir verebilecek kare bir dalga verir. program. Doğrudan bağlantı noktası I / O formu, ör.
PORTC ^= 0x01;
, zamanlamayı aramadan daha az bozar digitalWrite()
. Kullanışlı bir kapsamınız veya frekans ve / veya görev döngüsünü ölçme yeteneğine sahip DMM'lerden biri varsa kullanışlıdır.
Benzer şekilde, zamanlamayı fazla bozmadan veya seri I / O işlevleriyle kodu şişirmeden programınızın içinden ölçüm cihazınıza sayısal bir değer çıkarmak için bir analog çıkış pini kullanabilirsiniz. Doğrudan I / O formlarını da burada kullanın.