پاسخ : تایمر باds1307
سلام
مهندس واقعا ممنونم .خیلی زحمت کشیدید (یه تحلیل و تفسیر کوچولو
شما 3 تا شمارنده رو بکار انداختید
و هر کدوم از شمارنده ها رو بعد از پایان شمارش بصورت مستقل صفر میکنید
ولی فک نکنم که ds1307 این امکان رو داشته باشه که بتوان 3 شمارنده مستقل رو کنترل کرد و بعد از پایان شمارش مقدار رو صفر کرد . بدون اینکه مابقی خروجی ها رو تحت اشعاع قرار بده اینجا رو ببینید :
این قسمت برنامه DS1307 هست که قسمت ثانیه و دقیقه و ساعت رو صفر میکنه
و این قسمت رو من به برنامه تایمر اضافه کردم ولی روی یک خروجی مشکلی نداره ولی روی 2 تا خروجی جواب نمیده و مشکلش هم اینکه تا خروجی 2 رو غیر فعال نکنه خروجی 1 رو فعال نمیکنه :
سلام
مهندس واقعا ممنونم .خیلی زحمت کشیدید (یه تحلیل و تفسیر کوچولو

شما 3 تا شمارنده رو بکار انداختید
کد:
Time_cunter_1 = Time_cunter_1 + 1 Time_cunter_2 = Time_cunter_2 + 1 Time_cunter_3 = Time_cunter_3 + 1
کد:
If Time_cunter_1 = On_1_time_sec Then Led_out_1 = 1 Elseif Time_cunter_1 = On_1_off_sum Then Led_out_1 = 0 Time_cunter_1 = 0 End If If Time_cunter_2 = On_2_time_sec Then Led_out_2 = 1 Elseif Time_cunter_2 = On_2_off_sum Then Led_out_2 = 0 Time_cunter_2 = 0 End If If Time_cunter_3 = On_3_time_sec Then Led_out_3 = 1 Elseif Time_cunter_3 = On_3_off_sum Then Led_out_3 = 0 Time_cunter_3 = 0 End If
کد:
Seco = 0 Seco = Makebcd(seco) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 0 ' starting address in 1307 I2cwbyte Seco I2cstop Mine = 0 Mine = Makebcd(mine) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 1 ' starting address in 1307 I2cwbyte Mine I2cstop Hour = 0 Hour = Makebcd(hour) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 2 ' starting address in 1307 I2cwbyte Hour I2cstop
و این قسمت رو من به برنامه تایمر اضافه کردم ولی روی یک خروجی مشکلی نداره ولی روی 2 تا خروجی جواب نمیده و مشکلش هم اینکه تا خروجی 2 رو غیر فعال نکنه خروجی 1 رو فعال نمیکنه :
کد:
Action: If Hour = Hour2 And Mine = Mine2 And Seco = Seco2 Then ' ON FAN 1 Set Portd.4 Elseif Hour = Hour4 And Mine = Mine4 And Seco = Seco4 Then Reset Portd.4 End If If Hour = Hour22 And Mine = Mine22 And Seco = Seco22 Then ' ON FAN 2 Set Portd.3 Elseif Hour = Hour42 And Mine = Mine42 And Seco = Seco42 Then Reset Portd.3 '************************************** Seco = 0 Seco = Makebcd(seco) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 0 ' starting address in 1307 I2cwbyte Seco I2cstop Mine = 0 Mine = Makebcd(mine) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 1 ' starting address in 1307 I2cwbyte Mine I2cstop Hour = 0 Hour = Makebcd(hour) I2cstart ' Generate start code I2cwbyte Ds1307w ' send address I2cwbyte 2 ' starting address in 1307 I2cwbyte Hour I2cstop 'End If End If Return '=============================================================================== End
دیدگاه