بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
الحمد لله الذى بنعمته تتم الصالحات , هذا من فضل ربى ,
|
ما فائدة هذه العلامة في الكود ام انها صقطت سهوا ! هي في يداية حلقة while الاولى
|
هذه العلامة معناها NOT ,
كود:
while( !((portb.f1==0) && (portb.F1==0) && (portb.F7==1)) ) ;
و معنى هذا السطر ( بينما لم يتحقق الشرط انتظر و لا تنتقل الى الامر التالى حتى يتحقق الشرط ) فاذا تحقق الشرط تنتهى عملية الانتظار ثم يدخل فى السطر التالى :
كود:
while( ((portb.F1==0) && (portb.F1==0) && (portb.F7==1)) ) ;
و معناه (اذا تحقق الشرط انتظر ولا تنتقل للامر التالى حتى ينتهى وجود الشرط ) فعندما ينتهى ينتقل للسطر التالى و الذى هو استكمال حلقة for loop .
و ممكن كتابة الكود بشكل ابسط لحلقة while كالتالى :
كود:
while( ((portb.F1==0) && (portb.F1==0) && (portb.F7==1)) ) { }
و هو يوضح معنى عملية الانتظار السابقة و معناها : بينما هذا الشرط صحيح TRUE ادخل فى حلقة دوارة لا نهائية(اى انتظر) حتى يتحول الشرط الى FALSE اى ينتهى حدوثه , ثم انتقل للسطر التالى .
و لو كنت مبدئ و لست مضطر لاستخدام ال PIC فانصحك بالتحول لل AVR ان كان متوفر لديك , و هما الاثنين شركة واحدة الان.
و ما توفيقى الا بالله
اللهم حياة ترضيك و ميتة تضحكك