السلام عليكم ..
انا احاول استخدام حساس الالتراسونيك لقياس المسافة مع المايكرو pic18f45k22
بدون استخدام المؤقتات الداخلية للمايكرو ...
عند البحث في النت وجدت هذه المكتبة ..
كود:
float time_library ;
void HCSR04_Init(){
time_library=1./(float)(250*Clock_kHz());
SR04_Tigger_Direction=0;
SR04_Tigger=0;
SR04_Echo_Direction=1;
}
float HCSR04_Get_Distance(const code char cm_or_inch){
float time_ultrasonic=0; long SHRC04_time_conter=0;
SR04_Tigger=1;
Delay_us(10);
SR04_Tigger=0;
while(SR04_Echo==0);
while(SR04_Echo==1)SHRC04_time_conter++;
time_ultrasonic=time_library*(float)SHRC04_time_conter*10000000;
switch(cm_or_inch){
case 0: time_ultrasonic=time_ultrasonic/58.823; break;
case 1: time_ultrasonic=time_ultrasonic/149.41042; break;
}
return time_ultrasonic;
السؤال الأول : كيف يتنفذ هذا الأمر
كود:
time_library=1./(float)(250*Clock_kHz());
اتمنى لو احد الاخوة يشرحه لي بشيء من التفصيل .
السؤال الثاني : كيف يتنفذ هذا الأمر ايضاً
كود:
time_ultrasonic=time_library*(float)SHRC04_time_conter*10000000;
من يستطيع المساعدة له الأجر والثواب .