پاسخ : فرق I2C و I2C دو سیمه در کدویژن
دو تا سوال دیگه
در ابتدای این برنامه دو تا روتین وقفه تعریف شده
یکی برای تایمر صفر برای وقتی که سرریز میکنه و دیگری برای تایمر یک که وقفه مقایسه هست
جزئیاتشو میگم اما برای بیسیک بلد نیستم بنویسم
با این کار شما هم روتین وقفه در بیسیک را یادم بدین
' timer overflow ISR
'روتین وقفه تایمر صفر وقتی سرریز رخ میدهد
'وقتی وقفه رخ داد در زیر برنامه ابتدا وقفه ها را متوقف میکنیم. بدین معنا که تا به این وقفه رسیدگی نکرده ایم نمیگذاریم وقفه دیگری رخ دهد
'این کار در کدویژن با دستورات اسمبلی به صورت زیر است
#asm ("cli"
===> in bascom = ???
'حال دو کانتری که تعریف کرده بودیم را کم میکنیم تا به صفر برسند
IF Time1 > 0 Then Dect Time1
IF Time2 > 0 Then Dect Time2
' حال مجددا وقفه ها را فعال میکنیم. این کار در کدویژن با دستور اسمبلی زیر است
#asm ("sei"
===> in bascom = ???
END 'پایان روتین وقفه تایمر صفر
'************************
'روتین وقفه تایمر یک وقتی مقایسه درست میدهد
'وقتی وقفه رخ داد در زیر برنامه ابتدا وقفه ها را متوقف میکنیم. بدین معنا که تا به این وقفه رسیدگی نکرده ایم نمیگذاریم وقفه دیگری رخ دهد
'این کار در کدویژن با دستورات اسمبلی به صورت زیر است
#asm ("cli"
===> in bascom = ???
'حال دو کانتری که تعریف کرده بودیم را کم میکنیم تا به صفر برسند
IF Time3 > 0 Then Dect Time3
' حال مجددا وقفه ها را فعال میکنیم. این کار در کدویژن با دستور اسمبلی زیر است
#asm ("sei"
===> in bascom = ???
END 'پایان روتین وقفه تایمر یک
دو تا سوال دیگه
در ابتدای این برنامه دو تا روتین وقفه تعریف شده
یکی برای تایمر صفر برای وقتی که سرریز میکنه و دیگری برای تایمر یک که وقفه مقایسه هست
جزئیاتشو میگم اما برای بیسیک بلد نیستم بنویسم
با این کار شما هم روتین وقفه در بیسیک را یادم بدین
' timer overflow ISR
'روتین وقفه تایمر صفر وقتی سرریز رخ میدهد
'وقتی وقفه رخ داد در زیر برنامه ابتدا وقفه ها را متوقف میکنیم. بدین معنا که تا به این وقفه رسیدگی نکرده ایم نمیگذاریم وقفه دیگری رخ دهد
'این کار در کدویژن با دستورات اسمبلی به صورت زیر است
#asm ("cli"

'حال دو کانتری که تعریف کرده بودیم را کم میکنیم تا به صفر برسند
IF Time1 > 0 Then Dect Time1
IF Time2 > 0 Then Dect Time2
' حال مجددا وقفه ها را فعال میکنیم. این کار در کدویژن با دستور اسمبلی زیر است
#asm ("sei"

END 'پایان روتین وقفه تایمر صفر
'************************
'روتین وقفه تایمر یک وقتی مقایسه درست میدهد
'وقتی وقفه رخ داد در زیر برنامه ابتدا وقفه ها را متوقف میکنیم. بدین معنا که تا به این وقفه رسیدگی نکرده ایم نمیگذاریم وقفه دیگری رخ دهد
'این کار در کدویژن با دستورات اسمبلی به صورت زیر است
#asm ("cli"

'حال دو کانتری که تعریف کرده بودیم را کم میکنیم تا به صفر برسند
IF Time3 > 0 Then Dect Time3
' حال مجددا وقفه ها را فعال میکنیم. این کار در کدویژن با دستور اسمبلی زیر است
#asm ("sei"

END 'پایان روتین وقفه تایمر یک
دیدگاه