ماهو الخطأ في هذا الكود
كود:
void main()
{char ah=0;
portb=0;
trisb=0;
trisa.f0=1;
while(1)
{ if(porta.f0==1) {ah++; delay_ms(1000); }
if(porta.f0==1) portb=0b00000001; delay_ms(250);
if(porta.f0==2) portb=0b00000010; delay_ms(250);
if(porta.f0==3) portb=0b00000100; delay_ms(250);
}
}
فالمفروض عند الضغط على السويتش يعمل الليد في بورت0 وعند الضغط ثانية يعمل الليد في البورت 1 وعند الضغط مرة اخرى يعمل الليد في البورت 3 ولكن لايعمل الكود بصورة صحيحة كذلك الليد في البورت1 يعمل حتى في حلة الضغط عدم الضغط على السويتس

|
السلام عليكم
أنا ضعيف بلغة المايكروسي ولاكن عندي خبرة كافية بلغة البروتون بيسك بأمكاني اعملك نفس الكود
اما الكود الي انت عامله اعتقد في نقص يجب ان يكون هنالك متغير ..كان يكون عداد عند الضغط على السويج
اي عند الضغط ضغطة واحدة يكون المتغير متلاً 1
والضغطة الثانية يكون 2 وهكذا
عندها يكتب البرنامج
if(new==1) portb=0b00000001; delay_ms(250);
new هوة المتغير
والله اعلم
واذا تحب اعملك الكود بلغة البروتون انا حاضر