سلام
این برنامه را سریع باید درست کنم لطفا زود راهنماییم کنید.
oo:
برنامه یک ترموستات با armega8 دارم که سه حالت داره یا اتوماتیک یا manual یا timer در حالت manual که دستی ترموستات خاموش یا روشن میشه و دله هیتر رو خاموش یا روشن می کنه در حالت اتوماتیک اگر دمای محیط کمتر از دمای داده شده به دستگاه باشه ترموستات روشن و رله روشن و در غیر این صورت خاموش می شود. در حالت تایمر چه در حالت اتوماتیک باشد چه در حالت دستی بعد از زمانی که به دستگاه داده می شود ترموستات و در پی آن رله خاموش می شود که ثانیه شمار آن برای خاموش شدن ترموستات به صورت زیر تعریف می شود:
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
rtc_cnt+=2.097152;
if(rtc_cnt>60){
rtc_cnt-=60;
timer_refresh=1;
if(off_timer>0){
off_timer--;
if(off_timer==0){
timer_ovf=1;
rtc_cnt=0;
}
}
}
}
TCCR1B=0x04;
TIMSK=0x24;
باید کدی را به این برنامه اضافه کنم برای کالیبره کردن دما که مدت زمان روشن بودن و خاموش بودن رله را محاسبه کنه و بعد یه عملیاتی انجام بده. این طور که به نظر می رسه توی همین تایمر/کانتر یک نمی تونم این زمان ها رو بشمرم چون با تایمر مربوط به دستگاه تداخل پیدا می کنه درسته؟ اگر از وقفه داخلی تایمر کانتر صفر یا دو برای محاسبه زمان روشن یا خاموش بودن استفاده کنم مشکلی پیش نمیاد منظورم تداخله
برای نوشتن با کانتر تایمر صفر یا دو میشه راهنماییم کنید؟
ممنونم
این برنامه را سریع باید درست کنم لطفا زود راهنماییم کنید.

برنامه یک ترموستات با armega8 دارم که سه حالت داره یا اتوماتیک یا manual یا timer در حالت manual که دستی ترموستات خاموش یا روشن میشه و دله هیتر رو خاموش یا روشن می کنه در حالت اتوماتیک اگر دمای محیط کمتر از دمای داده شده به دستگاه باشه ترموستات روشن و رله روشن و در غیر این صورت خاموش می شود. در حالت تایمر چه در حالت اتوماتیک باشد چه در حالت دستی بعد از زمانی که به دستگاه داده می شود ترموستات و در پی آن رله خاموش می شود که ثانیه شمار آن برای خاموش شدن ترموستات به صورت زیر تعریف می شود:
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
rtc_cnt+=2.097152;
if(rtc_cnt>60){
rtc_cnt-=60;
timer_refresh=1;
if(off_timer>0){
off_timer--;
if(off_timer==0){
timer_ovf=1;
rtc_cnt=0;
}
}
}
}
TCCR1B=0x04;
TIMSK=0x24;
باید کدی را به این برنامه اضافه کنم برای کالیبره کردن دما که مدت زمان روشن بودن و خاموش بودن رله را محاسبه کنه و بعد یه عملیاتی انجام بده. این طور که به نظر می رسه توی همین تایمر/کانتر یک نمی تونم این زمان ها رو بشمرم چون با تایمر مربوط به دستگاه تداخل پیدا می کنه درسته؟ اگر از وقفه داخلی تایمر کانتر صفر یا دو برای محاسبه زمان روشن یا خاموش بودن استفاده کنم مشکلی پیش نمیاد منظورم تداخله
برای نوشتن با کانتر تایمر صفر یا دو میشه راهنماییم کنید؟
ممنونم
دیدگاه