سلام.
ببینید برنامتون چن تا مشکل داره:
1> پینهایی که به led متصل کردید به صورت خروجی تعریف نکردید و ledyellow به جای pinb.1 باید بنویسید portb.1 چون ریجستر pin برای خوندن از پایه کاربرد داره پس اول برنامه رو باید به صورت زیر اصلاح کنید:
کد:
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Ledred Alias Portb.0
Ledyellow Alias Portb.1
Ledgreen Alias Portb.2
2> تو برچسب w شما ledred رو set کردید و بعد 25 میلی ثانیه reset و بدون هیچ تاخیری دوباره set کردید.این باعث میشه که led شما همیشه روشن دیده بشه پس باید به یکی از دو صورت زیر بنویسید (25 میلی ثانیه هم خیلی کمه )
کد:
Do
Set Ledred
Waitms 250
Reset Ledred
Waitms 250
loop
یا
کد:
Do
Toggle Ledred
Waitms 250
Loop
3>شما تو برچسب w یه حلقه بی نهایت do loop گذاشتید که اگه یک بار مقدار adc بزرگتر از 1000 شد و به این برچسب اومد تو حقله گیر میکنه هیچوقت به return نمیرسه!
پس باید حلقه do loop رو بردارید و یا یه حلقه که پایان داشته باشه بزارید!
نکته:
اگه ADC بین 1000 تا 1200 بود
دقت adc تو این نوع میکرو 10 بیت هست.یعنی حداکثر عددی که شما از خروجی adc میگیرید 1023 هست و برای اینکه یه شرط برای یه محدوده از اعداد بزارید ساده ترین راه اینه که به شکل زیر عمل کنید:
کد:
If A > 700 And A < 1023 Then
.
.
.
.
end IF
موفق باشی