أريد اوضحلك أمر مهم جدا
سقن سكمنت عندك مرتبه بهذا الشكل
السنه-الشهر-اليوم-الاسبوع-ساعات-الدقائق-الثواني
بس داله او مكتبه DS1307 لها ترتيب مختلف وهو
كود:
setting_DS1307[2]=hours;
setting_DS1307[1]=minutes;
setting_DS1307[0]=seconds;
setting_DS1307[4]=day;
setting_DS1307[3]=week;
setting_DS1307[5]=month;
setting_DS1307[6]=year;
يعني مصفوفه setting_DS1307 لها ترتيب ثابت مشكله كيف حل مشكله عدم انتظام
طبعا أنت مضطر تغير بمكتبه DS1307 حتى تصبح مرتبه أشلون
لاحظ انت اولا لما تضغط على ضبط راح تطلعلك السنه وبعدين شهر وبعدين اليوم وبعدين اسبوع وبعدين ساعه ومن ثم دقائق ومن ثم ثواني
لهذا لابد من ضبط داله set_DS1307
كود:
static void set_DS1307(unsigned char set_switch,unsigned char inc_dec_system_12_24)
{
if(set_switch==0)// start value
{
setting_DS1307[2]=hours;
setting_DS1307[1]=minutes;
setting_DS1307[0]=seconds;
setting_DS1307[4]=day;
setting_DS1307[3]=week;
setting_DS1307[5]=month;
setting_DS1307[6]=year;
}
if(set_switch==8)//write new data to DS1307
{
if(inc_dec_system_12_24==24)kw_12_24=24;
else if(inc_dec_system_12_24==12)kw_12_24=12;
Show_Time(setting_DS1307[2],setting_DS1307[1],setting_DS1307[0],setting_DS1307[4],
setting_DS1307[3],setting_DS1307[5],setting_DS1307[6],0);
}
if (inc_dec_system_12_24==0) // inc switch
{
setting_DS1307[set_switch-1]++;
if(setting_DS1307[2]>=24)setting_DS1307[2]=23;// houres
if(setting_DS1307[1]>=60)setting_DS1307[1]=59;// minute
if(setting_DS1307[0]>=60)setting_DS1307[0]=59;// second ,
if(setting_DS1307[4]>=32)setting_DS1307[4]=31;// days
if(setting_DS1307[3]>=8)setting_DS1307[3]=7;// week
if(setting_DS1307[5]>=13)setting_DS1307[5]=12;// month
if(setting_DS1307[6]>=99)setting_DS1307[6]=99;// year
}
if (inc_dec_system_12_24==1) // dec switch
{
if(setting_DS1307[set_switch-1]>0)setting_DS1307[set_switch-1]--;
if(setting_DS1307[4]==0)setting_DS1307[4]=1;// days
if(setting_DS1307[3]==0)setting_DS1307[3]=1;// week
if(setting_DS1307[5]==0)setting_DS1307[5]=1;// month
}
}
اين صار تغير
الجواب فقط في مواقع مصفوفه setting_DS1307
======================================
بالبدايه خليت set=7 يعني بداله set_DS1307 بيكون [setting_DS1307[6 مخصص للسنه وعليه ترتب البقيه للعلم setting_DS1307 هي مصفوفه للسنه
[setting_DS1307[5 للشهر وهكذا
ولكن مهلا اهم تعديل هو كود بلون أحمر لاني داله show_time مرتبه وعليه تضع كل شيئ في مكانه لان show_time
مرتبه ساعات -دقائق-ثواني -يوم -اسبوع-شهر-سنه
يعني بأختصار أخي داله set_DS1307 ترتب حسب ماتريد أنت
أخي لاتتردد في كود حتى تفهمه بشكل جيد