|
باركك الله فيك يا اخي
انا سعيد بهتمامكم بمشكلتي و انشاء الله سوف نجد الحل
المشكل هو
portb =1
في لحظة ثم يبقى منطفئ
|
السلام عليكم
عذرا أخي على تاخير
أخي انا لم أفهم ماهي مشكله اذا تكدر تصور لنا فيديو بالتجربه ولكن قبل ذلك جرب هذا الكود
علما اذا كانت مسافه اقل من 6 سنتيمتر سوف يضيئ ليد المربوط على portb.f0 أنتبه مسافه اقل من 6cm
كود:
//Crystal 4MHz //speed of sound 340m/s //1 TMR0 cycle = (340/1000000)*256*0.5*100 = 4.352 in cm
#define TRIG PORTA.F0
#define ECHO PORTA.F1
double distance;
unsigned int cont=0;
//Timer0 //Prescaler 1:1; TMR0 Preload = 197; Actual Interrupt Time : 58 us
//Place/Copy this part in declaration section
void InitTimer0()
{ OPTION_REG = 0x88;
TMR0 = 197;
INTCON = 0xA0;
}
void Interrupt()
{
if (TMR0IF_bit)
{ TMR0IF_bit= 0;
TMR0 = 197;
//Enter your code here
cont++;
}
}
void main()
{
CMCON = 0x07;
InitTimer0();
TRISa.F0 = 0;
TRISa.F1 = 1;
TRISb=0x00;
while(1)
{
TRIG= 0;
delay_us(10);
TRIG = 1;
delay_us(10);
TRIG= 0;
while(ECHO==0);
TMR0=0;
cont=0;
while(ECHO==1);
distance = cont;
if(distance <6) // less from 6cm
{
portb.f0=1 ;
delay_ms(1000);
portb=0;
}
}
}