ایجاد تاخیر ۱ ثانیه با استفاده از وقفه تایمر یک محتوای پوشه (TimersTimer 1 (16bit)1sec delay [INT])

چون شمارنده تایمر در اینجا ۱۶ بیتی می باشد بنابراین قارد است از ۰ تا FFFF یعنی ۰ تا ۶۵۵۳۵ را بشمارد. از آنجایی که فرکانس تایمر ۶۲۵۰۰ هرتز شد و مدت زمان شمارش هر پله هم ۱۶us شد بنابراین با تقسیم عدد ۱ بر ۱۶us حاصل ۶۲۵۰۰ پله شمارش خواهد شد پس ۶۵۵۳۶-۶۲۵۰۰=۳۰۳۶ خواهد شد یعنی شروع شمارنده تایمر باید از عدد ۳۰ ۳۶ باشد. همانطور که ملاحضه می کنید در اینجا چون تایمر یک ۱۶ بیتی می باشد و گستره شمارش بالایی دارد دیگر نیازی به یک متغیر c برای شمارش نیست و به راحتی خود تایمر این کار را انجام خواهد داد.

intr

روتین وقفه تایمر یک هم باید مجددا مقدار شمارنده برای شمارش بعدی با عدد ۳۰۳۶ بارگذاری شود. همچنین در همین روتین ما عمل معکوس سازی پین A.0 را انجام می دهیم.