السلام عليكم ورحمة الله وبركاته
كود دائرة الفلاشر على قدر اجتهادى . الكود شغال تمام وتم عمل محاكاة له على البروتس
كود:
void main()
{
trisa = 0xff ; trisb = 0 ;
portb = 0 ;
while (1)
{
main:
if(porta==30)
{
loop1: portb = 255 ; delay_ms(500) ;portb=0; delay_ms(500) ;
while(porta==31){goto loop1;}
goto main;}
else if(porta==29)
{
loop2: portb = 150 ; delay_ms(500) ; portb=0; delay_ms(500) ;
while(porta==31){goto loop2;}
goto main;
}
else if(porta==27)
{
loop3:portb = 240 ; delay_ms(500) ; portb=0; delay_ms(500) ;
while(porta==31){goto loop3;}
goto main;}
else if(porta==23)
{
loop4:portb = 96 ; delay_ms(500) ; portb=0; delay_ms(500) ;
while(porta==31){goto loop4;}
goto main;}
else if(porta==15)
{
loop5:portb = 200 ; delay_ms(500) ; portb=0; delay_ms(500) ;
while(porta==31){goto loop5;}
goto main; }
}
}
طبعا أنا فرضت أى patterns وهم 255 و 150 و 240 و 96 و 200
وأرجو التصحيح من أهل الخبرة إن كان هناك خطأ أو كود أسهل وأصغر فى الحجم
وبالنسبة للكريستال فطبعا لايوجد كريستال 1.04 وذلك لأن هذه القيمة تكون عندما نستخدم مقاومة ومكثف كمصدر لل clock للبيك
|
اخي انا لست متخصص في لغة السي
ولكني حاليا ادرسها
ومن القواعد التي ادرسها عدم استخدام الكلمات المحجوزة لتسمية المتغيرات
وانت هنا تستخدم كلمة main للعوده عليها باستخدام goto
واعتقد انك لو اردت استخدام كلمة main فمن الممكن كتابتها بهذا الشكل MaiN
كمثال
اي انك غيرت حروف من small الي CAPITAL
وبذلك لاتعتبر كلمة محجوزة لان لغة السي لغة حساسه للحروف
ف main غير MaiN
ده حسب القواعد اللي ادرسها حاليا وكله نظري ولم اجربه عملي
واذا كنت مخطيء ارجو تنبيهي
جزاك الله خيرا
ووفقك الله
اخوك احمد