اطلاعیه

Collapse
No announcement yet.

از بین رفتن اطلاعات مدار با قطع برق

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    از بین رفتن اطلاعات مدار با قطع برق

    با سلام
    یک مدار تایمر دارم که با قطع برق اطلاعات اش از بین میره یعنی زمان تایم ساعت !! میخواستم بدونم چطور میشه اطلاعات داخل ای سی را حفط کرد تا با قطع برق از بین نرود !!؟ روش ساده ای سراغ دارید؟
    سپاس

    #2
    پاسخ : از بین رفتن اطلاعات مدار با قطع برق

    استفاده از حافظه EEPROM داخلی میکرو و یا خارجی
    اگر برای ساعت میخواهید هم استفاده از آی سی های RTC
    ---------
    .
    .
    ...........

    دیدگاه


      #3
      پاسخ : از بین رفتن اطلاعات مدار با قطع برق

      نوشته اصلی توسط Des_B
      استفاده از حافظه EEPROM داخلی میکرو و یا خارجی
      اگر برای ساعت میخواهید هم استفاده از آی سی های RTC
      در تایید حرف دوستمان
      حافظه های EEprom با قطع برق اطلاعاتشون پاک نمیشن می تونین از EEPROM داخلی میکرو استفاده کنید.
      *****عيب جامعه اين است که همه مي خواند آدم مهمي باشند ولي هيچ کس نمي خواهد فرد مفيدي باشد.*****
      http://electerodl.ir/forum

      دیدگاه


        #4
        پاسخ : از بین رفتن اطلاعات مدار با قطع برق

        نوشته اصلی توسط Des_B
        استفاده از حافظه EEPROM داخلی میکرو و یا خارجی
        اگر برای ساعت میخواهید هم استفاده از آی سی های RTC
        ممنون دوست عزیز: لطفا بیشتر توضیح بدهید!!
        من برای ساعت میخوام! ای سی rtc دقیقا چی هست؟ یک نمونه لطفا معرفی کنید!
        سپاس

        دیدگاه


          #5
          پاسخ : از بین رفتن اطلاعات مدار با قطع برق

          نوشته اصلی توسط ircaspianhero
          ممنون دوست عزیز: لطفا بیشتر توضیح بدهید!!
          من برای ساعت میخوام! ای سی rtc دقیقا چی هست؟ یک نمونه لطفا معرفی کنید!
          سپاس
          توی همین سایت و یا گوگل سرچ کنید : DS1307
          کلی مطالب آموزشی در موردش هست که می تونه کمکتون کنه.
          کلمه RTC مخفف عبارت Real Time Clock هستش. این آی سی ها برای ذخیره زمان به کار میرند. یک باتری بهشون وصل میشه به خاطر مصرف پایینشون می تونید ازشون تو زمان طولانی استفاده کنید.
          پروتکل ارتباطیشون هم معمولا I2C هستش.
          توی مادربرد کامپیوتر هم از همین نوع آی سی ها هستش.
          ---------
          .
          .
          ...........

          دیدگاه


            #6
            پاسخ : از بین رفتن اطلاعات مدار با قطع برق

            ممنون دوستان:
            حافظه های EEprom با قطع برق اطلاعاتشون پاک نمیشن می تونین از EEPROM داخلی میکرو استفاده کنید.
            مگا8 ایا این سیستم داره؟ حافظه EEprom داخلی؟
            لی مطالب آموزشی در موردش هست که می تونه کمکتون کنه.
            کلمه RTC مخفف عبارت Real Time Clock هستش. این آی سی ها برای ذخیره زمان به کار میرند. یک باتری بهشون وصل میشه به خاطر مصرف پایینشون می تونید ازشون تو زمان طولانی استفاده کنید.
            پروتکل ارتباطیشون هم معمولا I2C هستش.
            دوست عزیز: فکر کردم یک چیز دیگه ای میگی! این سیتم که میگی مدار خودم هم با همین سیستم هست!! که باتری 2025 و.. وصل میشه مدار و با قطع برق ساعت و دقیقه و.. به هم نمیخوره!! این قسمت مدار مشکلی نداره!!
            منظور برای تایمر هست !! مثلا ساعت را طوری تنظیم می کنیم که سرعت ساعت 5 صبح روشن بشه و 6 صبح خاموش !!! زمانیکه برق قطع میشه این تنظمات تایمر از بین می روند!!
            راه حلی برای این موضوع می خواهم!؟
            سپاس

            دیدگاه


              #7
              پاسخ : از بین رفتن اطلاعات مدار با قطع برق

              باید مقدار متغییر تنظیم شده در حافظه eeprom ذخیره شه
              امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

              دیدگاه


                #8
                پاسخ : از بین رفتن اطلاعات مدار با قطع برق

                نوشته اصلی توسط mahdi8866
                باید مقدار متغییر تنظیم شده در حافظه eeprom ذخیره شه
                ممنون دوست عزیز: میتوینید یک مثال بزنید! مثلا هین ds1307 باید یک نوع eeprom باشه!! درسته؟

                توی کد زیر کدام متغیر ها باید توی حافظه eepromخارجی تعریف بشود تا هنگام قطعی برق زمان تایمر از بین نرود؟

                نمونه کد:
                [code=c]
                include <mega8.h>
                #include <delay.h>
                #include <stdio.h>
                #include <i2c.h>
                #include <ds1307.h>
                #include <alcd.h>
                #define b_down PIND.1
                #define b_up PIND.2
                #define b_set PIND.0
                #define b_set_down PIND.3
                #define relay PORTB.7
                #define buzzer PORTC.0
                //__________________________________________________ __________
                void main(){
                char lcd_buffer1[16];

                unsigned char hr,min,sec,status=0,value=0,roz=0;
                unsigned char week,year,month,day;
                unsigned char en_hr=0,en_min=0,en_sec=0;
                unsigned char st_hr=0,st_min=0,st_sec=0;
                unsigned char en_year=0,en_month=0,en_day=0;
                unsigned char st_year=0,st_month=0,st_day=0;
                unsigned int main_year;
                DDRB.7=1;
                relay = 0;
                DDRC=0xFF;
                PORTD=0XFF;
                i2c_init();
                lcd_init(16);
                rtc_init(0,0,0);

                if(b_set == 0)
                {
                rtc_set_time(0,0,0);
                rtc_set_date(0,8,7,15);
                lcd_putsf("Successfully!"
                while(1)
                {
                }
                }

                delay_ms(20);
                rtc_get_time(&en_hr,&en_min,&en_sec);
                rtc_get_time(&st_hr,&st_min,&st_sec);
                rtc_get_date(&week,&en_day,&en_month,& amp;en_year);
                rtc_get_date(&week,&st_day,&st_month,& amp;st_year);
                delay_ms(20);

                while (1){
                lcd_clear();
                lcd_gotoxy(2,0);
                lcd_putsf("please wait"


                while(status == 0)
                {
                rtc_get_time(&hr,&min,&sec);
                rtc_get_date(&week,&day,&month,&ye ar);
                main_year = year + 2000;

                if(b_up == 0)
                {
                roz++;
                if(roz == 2) roz = 0;
                while(b_up == 0);
                }

                if(roz == 0)
                {
                if(hr == en_hr & min == en_min & sec == en_sec & year == en_year & month == en_month & day == en_day)
                {
                value = 1;

                buzzer = 1;
                delay_ms(3000);
                buzzer = 0;
                relay = 1;
                }

                if(hr == st_hr & min == st_min & sec == st_sec & year == en_year & month == en_month & day == en_day)
                {
                value = 0;
                relay = 0;
                }
                }
                else
                {
                if(hr == en_hr & min == en_min & sec == en_sec)
                {
                value = 1;

                buzzer = 1;
                delay_ms(3000);
                buzzer = 0;

                relay = 1;
                }

                if(hr == st_hr & min == st_min & sec == st_sec)
                {
                value = 0;
                relay = 0;
                }
                }

                lcd_clear();

                sprintf(lcd_buffer1,"Time~ %02u:%02u:%02u",hr,min,sec);
                lcd_gotoxy(0,0);
                lcd_puts(lcd_buffer1);
                sprintf(lcd_buffer1,"%u/%02u/%02u ",main_year,month,day);
                lcd_gotoxy(0,1);
                lcd_puts(lcd_buffer1);

                if(value == 0)
                lcd_putsf("Off"
                else
                lcd_putsf("On"

                if(roz != 0)
                lcd_putsf(" R"

                if(b_set == 0)
                {
                status++;
                if(status == 19) status = 0;
                while(b_set == 0);
                }
                delay_ms(200);
                }

                rtc_get_time(&hr,&min,&sec);
                b:
                while(status == 1)
                {
                if(b_up == 0)
                {
                hr++;
                if(hr == 25) hr = 0;
                delay_ms(70);
                }

                if(b_down == 0)
                {
                hr--;
                if(hr == -1) hr = 0;
                delay_ms(70);
                }

                lcd_clear();
                lcd_gotoxy(0,0);
                sprintf(lcd_buffer1,"Time~%02u:%02u:%02u&quot ;,hr,min,sec);
                lcd_puts(lcd_buffer1);
                delay_ms(80);
                lcd_clear();
                sprintf(lcd_buffer1,"Time~ :%02u:%02u",min,sec);
                lcd_puts(lcd_buffer1);
                delay_ms(80);
                if(b_set == 0)
                {
                rtc_set_time(hr,min,sec);
                status++;
                if(status == 19) status = 0;
                while(b_set == 0);
                }
                if(b_set_down == 0)
                {
                status--;
                if(status == -1) status = 0;
                while(b_set_down == 0);
                goto b;
                }
                }

                [/code]

                سپاس

                دیدگاه


                  #9
                  پاسخ : از بین رفتن اطلاعات مدار با قطع برق

                  نوشته اصلی توسط ircaspianhero
                  ممنون دوست عزیز: میتوینید یک مثال بزنید! مثلا هین ds1307 باید یک نوع eeprom باشه!! درسته؟
                  سپاس
                  ds1307 یه ایسی که زمان دقیق یا ساعت دقیق میده یعنی شاید شما با خود میکرو یه برنامه ساعت بنویسی دقتش به این ایسی نمیرسه

                  eeprom حافظه ای که با قطع برق محتواش پاک نمیشه
                  خود atmega ها این حافظه رو دارن ولی بهتره که از حافظه خارجی استفاده کنید (فعلا با eeprom خود میکرو کار کنید بهتره برای تست میگم )
                  امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                  دیدگاه


                    #10
                    پاسخ : از بین رفتن اطلاعات مدار با قطع برق

                    نوشته اصلی توسط ircaspianhero
                    ممنون دوست عزیز: لطفا بیشتر توضیح بدهید!!
                    من برای ساعت میخوام! ای سی rtc دقیقا چی هست؟ یک نمونه لطفا معرفی کنید!
                    سپاس
                    خوب خودت گفتی برای ساعت میخوام !! oo:
                    به هر حال برای ذخیره متغیرها می تونی از یک حافظه EEPROM جدا که با پروتکل I2C کار می کنه، استفاده کنی.
                    مثلا AT24C02 که 2Kbit ظرفیت داره.
                    ---------
                    .
                    .
                    ...........

                    دیدگاه


                      #11
                      پاسخ : از بین رفتن اطلاعات مدار با قطع برق

                      نوشته اصلی توسط ircaspianhero
                      ممنون دوستان:مگا8 ایا این سیستم داره؟ حافظه EEprom داخلی؟
                      بله مقدار حافظه eeprom داخلی در مگا8 برابر 512 بایت هستش..
                      *****عيب جامعه اين است که همه مي خواند آدم مهمي باشند ولي هيچ کس نمي خواهد فرد مفيدي باشد.*****
                      http://electerodl.ir/forum

                      دیدگاه


                        #12
                        پاسخ : از بین رفتن اطلاعات مدار با قطع برق

                        ممنون دوستان: لطفا در مورد برنامه نویسی اش هم یکم توضیح بدهید! به زبان سی !!
                        سپاس

                        دیدگاه


                          #13
                          پاسخ : از بین رفتن اطلاعات مدار با قطع برق

                          نوشته اصلی توسط ircaspianhero
                          ممنون دوستان: لطفا در مورد برنامه نویسی اش هم یکم توضیح بدهید! به زبان سی !!
                          سپاس
                          ذخیره اطلاعات روی EEPROM هم تو این سایت، هم تو سایتای دیگه، هم تو گوگل، هم تو جزوه های آموزشی دوستان مثل جزوه آقای سپاس یار، هم توی فیلم آموزشی آقای کی نژاد گفته شده.
                          یاد دادنش کار یک پست نیست. (حتی 2 یا 3 پست).
                          ---------
                          .
                          .
                          ...........

                          دیدگاه


                            #14
                            پاسخ : از بین رفتن اطلاعات مدار با قطع برق

                            نوشته اصلی توسط ircaspianhero
                            ممنون دوستان: لطفا در مورد برنامه نویسی اش هم یکم توضیح بدهید! به زبان سی !!
                            سپاس
                            کد:
                            eeprom char dellfo[10]
                            چون سرعت ذخیره روی eeprom پایینه یه delay بعد از نوشتن دستور بذار.

                            یه روش دیگه هم اینه که میتونی از حافظه sram آیسی ساعت برای ذخیره استفاده کنی برای ds1307 56بایت حافظه داره
                            کد:
                            56-byte, battery-backed, nonvolatile (NV)
                            RAM for data storage
                            راه اندازی enc28j60 و enc424j600 برای RL-TCPnet

                            راه اندازیks0108 با emwin

                            راه اندازی lcd7 اینچ با داریور داخلی stm32f429

                            دیدگاه


                              #15
                              پاسخ : از بین رفتن اطلاعات مدار با قطع برق

                              نوشته اصلی توسط ircaspianhero
                              با سلام
                              یک مدار تایمر دارم که با قطع برق اطلاعات اش از بین میره یعنی زمان تایم ساعت !! میخواستم بدونم چطور میشه اطلاعات داخل ای سی را حفط کرد تا با قطع برق از بین نرود !!؟ روش ساده ای سراغ دارید؟
                              سپاس
                              ساده ترین راه ذخیره اطلاعات داخل eeprom آی سی هست میتونم تو برنامه برات درستش.کنم

                              دیدگاه

                              لطفا صبر کنید...
                              X