ايران ويج

نسخه‌ی کامل: یک برنامه بسیار ساده می خواستم امکان داره کمک کنید
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
من تازه با avr آشنا شدم و می خواستم ازتون یک کمک بگیرم در رابطه با یک برنامه خیلی ساده (البته برای شما)

امکان داره یک برنامه با بسکام و atmega32  برای من بنویسید که بتونه
یک مقدار پالس بگیره (مثلا 10 هزار تا) بعد یک ثانیه یک پایه رو برای من یک کنه و دوباره صفر کنه
من می خواهم این برنامه دور یک گیربکس رو بشماره برام  و روی lcd تغداد دور یا پالس رو نشون بده (برای این کار یک پراکسی نصب کرده ام که با هر دور یک تیغه قطع و وصل به من میده) و وقتی به عدد setpoint (مثلا 10 هزار دور) رسید عدد روی lcd صفر بشه و یک led به مدت یک ثانیه روش بشه و خاموش بشه و دوباره شمارش از صفر شروع بشه و دائم کار کنه
یعنی یک کانتر تا setpoint من بشماره و به setpoint رسید صفر بشه و همین زمان یک led روشن بشه و خاموش بشه

آیا برای شما امکان داره یاری ام کنید
ممنون می شم
سلام
 همیشه واسه سوالا یخورده از برنامه رو بنویسید تا با هم کامل کنیم 
یه مقدار نوشتم اگه جاییو خواستین تغییر بدین با خودتون ^_^

 
کد:
$regfile "m32def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.7 , E = Portb.6 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Timer1 = Counter , Edge = Falling

Config Portd.2 = Output
Counter1 = 0
Dim A As Word
Portd.2 = 0
Cls
Do
A = Counter1
Locate 1 , 1
Lcd A
If A = 10 Then

Counter1 = 0
Portd.2 = 1
wait 1
Portd.2 = 0
Cls

End If
Loop
End


این برنامه تا از صفر تا ده میشمره و صفر میشه میتونید تغییرش بدین ( If A = 10 Then )فقط تو شمارش یه وقفه 1ثانیه ایجاد میشه بخاطر تاخیر تعریف شده واسه led اگه میخوایید این تاخیر نباشه میتونید زمان 1ثانیه رو واسه تایم روشن موندن led با تایمری دیگه توی برنامه ایجاد کنید 
موفق باشید