C dilinde geciktirmek için nasıl?

J

Jackwang

Guest
i C dili ile C51 uzun süre (100ms) gecikme uygulamak için kod yazmak istiyorsanız, size bazı iyi tavsiye verebilir?
 
C zaman gecikmeleri oluşturmak için bir yazılım döngü oluşturmak için derleyici azalttığı koduna bağlıdır. Siz (i = 0 gibi bir şey deneyebilirsiniz; i
 
i sonra NOP kullanmak, C içinde asm komutları kullanabilirsiniz düşünüyorum ... ben bir gecikme ama onun çok küçük yaratacağını düşünüyorum, istediğiniz gecikme ayarlayabilirsiniz böylece döngü deneyin
 
Zaman tabanı u seçmek istiyorum için kesme oluşturmak için zamanlayıcı kullanın. örn. 10ms veya 1ms Sonra yazılım zamanlayıcı gibi değişkenler kullanabilirsiniz. (10ms zaman tabanı 100ms gecikme örneğin, 10 ile initialize) düzgün Initailise, her kesme ve 0 olmanın üzerine bu azaltma, ur gecikme bitti ve u ur fazla aktivite yapabilirsiniz.
 
"C" gecikme () işlevini kullanın. Ben gecikmesi (1) 1nSec gecikme olduğunu düşünüyorum ama yardım için kontrol edin ve size cevap alırsınız.
 
Eğer 'için' yoluyla gecikme kullanırsanız döngüler değişkeni sayım için uçucu koymak unutmayın - aksi takdirde kod derleyici optimizasyon tarafından soyulmuş olabilir.
 
Her şeyden önce, soru olmalıdır geciktirecektir nasıl hassas? O zaman sadece bir döngü kullanabilirsiniz ve sadece deneme ve döngü sayısının ne olması gerektiği hata ile karşılaşırsanız değilse. Yoksa (opcode) için C derler için ASM kodu hesaplayabilirsiniz. Kitaplığınız destekliyorsa da gecikme fonksiyonu kullanabilirsiniz. Eğer suryakant zaten önerildiği gibi zamanlayıcı kesmesi kullanmak için iyi daha çok düzeltme gecikme zamana ihtiyacım var. Sana gecikme gerekli subrpogram bir değişken (semafor) gerektiğini, ekleyin ve bir süre döngü değerini kontrol etmek istiyorum tek şey. Kesme itibaren, zaman geçtiğinde, bu semaforun değerini değiştirmek. Böylece hassas usec (zamanlayıcı kesmesi girmek için gereken zaman, decremenet SW sayacı, evet kesmesinden semafor ve çıkış değiştirirseniz, sıfır olup olmadığını kontrol + programında semafor chack) 10-20 mesafesindedir. Belsugului Belsugului
 
Yanımda oturan kişi o zaman sayma düzeneği Subcode kullanmak çok daha iyi olduğunu söylüyor. # Asm gecikme kodu # endasm
 
Arkadaşım her zaman gecikme oluşturmak için C derleme kodu kullanmak, bence gecikme fonksiyonu im doğru eğer time.h dahil sadece çalışır. NOP derleme komutu bir saat döngüsü gecikme, im doğruysa, veya saat döngüsü bir dizi, bu nedenle osilatörünün NOP adlı kurulabilmesi sayısına bağlıdır olacaktır.
 
merhaba, ben c programlama için yeni. Şu anda ben sıralama sinyalleri programlama yapıyorum ve i differernt zamanlarda her sinyalleri hızlandırması gerekiyor. böylece, her sinyaller geciktirmek için döngü kullanmak mümkün mü? Kaç saniyeye eşittir 1 döngü? Yanıtınız için teşekkürler.
 

Welcome to EDABoard.com

Sponsor

Back
Top