یه مدار ساده با یه میکرو Atmega 32 رو برای تست تو پروتئوس اماده کردم ... ورودی از pina.0 که یه کلید ساده بهش وصله .... خروجی به portc.0 که یه led بهش وصله
حالا برنامه می نویسیم که هر وقت کلید زده شد لامپ روشن بشه ... به همین سادگی ...
اینم برنامه اش :
$regfile = "M16DEF.DAT"
$crystal = 4000000
Config Portc = Output
Config Pina.0 = Input
Config Pina.4 = Input
Do
If Pina.0 = 1 Then
Toggle Portc.0
End If
Loop
End
دیدین چقدر ساده است .... تنها چیزی که هست اینه که من بجای set portc.0 نوشتم toggle portc.0 ... که در عمل فرقی نداره .
حالا وقتی تو پروتئوس اجراش می کنم ... با زدن کلید چراغ ما چشمک می زنه !!!! ... مگه نه اینکه اینجا اول شرط رو بررسی می کنه بعد چراغ رو از حالت اولیه تغییر می ده ؟ ... خوب وقتی به اخر شرط رسید و خواست loop رو از اول طی کنه مگه هنوز pina.0 ما یک هست ؟ ... من که کلید رو یه باز بیشتر نزدم و بعد هم الان دیگه ولتاژی نداره این پین !!! ... پس چرا برنامه به داخل شرط میره و وضعیت چراغ رو عوض می کنه ؟ ...
اینجا 3 حالته ....
1. وقتی من کلید رو زدم دیگه تا ابد و دهر اون پین 1 فرض می شه ... که اینجوری فکر نکنم باشه ... اگه هست چطور صفرش کنم ؟ .... pina.0 =0 که نیست ؟! دی:
2. یا کلا برنامه از منطق درستی پیروی نمی کنه و من مبتدی در برنامه نویسی میکرو کنترلر ... فکر می کنم روال عین vb , vb.net و .... در دات نته ... که بازم فکر نکنم فرقی داشته باشه
3. یا یه چیزی که شما میتونید بگید و کمکم کنید
ممنون می شم اگه روشنم کنید
حالا برنامه می نویسیم که هر وقت کلید زده شد لامپ روشن بشه ... به همین سادگی ...
اینم برنامه اش :
$regfile = "M16DEF.DAT"
$crystal = 4000000
Config Portc = Output
Config Pina.0 = Input
Config Pina.4 = Input
Do
If Pina.0 = 1 Then
Toggle Portc.0
End If
Loop
End
حالا وقتی تو پروتئوس اجراش می کنم ... با زدن کلید چراغ ما چشمک می زنه !!!! ... مگه نه اینکه اینجا اول شرط رو بررسی می کنه بعد چراغ رو از حالت اولیه تغییر می ده ؟ ... خوب وقتی به اخر شرط رسید و خواست loop رو از اول طی کنه مگه هنوز pina.0 ما یک هست ؟ ... من که کلید رو یه باز بیشتر نزدم و بعد هم الان دیگه ولتاژی نداره این پین !!! ... پس چرا برنامه به داخل شرط میره و وضعیت چراغ رو عوض می کنه ؟ ...
اینجا 3 حالته ....
1. وقتی من کلید رو زدم دیگه تا ابد و دهر اون پین 1 فرض می شه ... که اینجوری فکر نکنم باشه ... اگه هست چطور صفرش کنم ؟ .... pina.0 =0 که نیست ؟! دی:
2. یا کلا برنامه از منطق درستی پیروی نمی کنه و من مبتدی در برنامه نویسی میکرو کنترلر ... فکر می کنم روال عین vb , vb.net و .... در دات نته ... که بازم فکر نکنم فرقی داشته باشه
3. یا یه چیزی که شما میتونید بگید و کمکم کنید
ممنون می شم اگه روشنم کنید