En kullanışlı işlevlerden biri
wait_ms'dir. Ancak bu standart bir kütüphane işlevi değildir ve programlanması gerekmektedir. Bu uygulama için, verilen süre geçinceye kadar işlemciyi tutacak bir döngü olacaktır.
PIC18F mikrodenetleyici, bir satır montaj kodu yürütmek için 4 saat döngüsüne ihtiyacı vardır. Bu nedenle,
16MHz'lik bir saatte, hatlar saniyede 4 milyon satırda = mili saniye başına 4000 satırda yürütülecektir.
For döngüsü, karşılaştırma için her seferinde bir talimat - bir operasyon - alacağından, mükemmel şekilde çalışacaktır. For döngüsünün mili saniyede 1000 kez döngü yapması yeterlidir.
- System.c dosyasında void wait_ms (uint16_t time) türünde dosyanın altında yeni bir işlev oluşturun
- Aşağıda tamamlanmış kodu görebilirsiniz.
/**
* Wait for a given number of milli-seconds using busy waiting scheme.
* @param time - time in ms to wait.
*/
void wait_ms(uint16_t time)
{
static long timel = 0;
timel = time * 1000l;
for( ; timel; timel--);// no initial condition, while time is >0, decrement time each loop
}
- Proje tarayıcısında Üstbilgi Dosyaları klasöründe system.h dosyasını açın
- Sonuna void wait_ms (uint16_t) satırını ekleyin; işlevi prototiplemek için.
- Satır 8'i 8000000L'den 16000000L'ye değiştirin
- Hatalar / uyarılar var mı kontrol edin