اطلاعیه

Collapse
No announcement yet.

مشکل با DS1307

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

    مشکل با DS1307

    سلام. من تازه کار کردن با آی سی DS1307 رو شروع کردم. این برنامه رو نوشتم که ساعت 21:1:2 رو نشون بده.
    [code=c]
    #include <mega128a.h>
    #include <delay.h>
    #include <stdio.h>
    #include <lcd.h>
    #asm
    .equ __lcd_port = 0x1B // LCD: Port A
    #endasm
    #include <i2c.h>
    #asm
    .equ i2c_port = 0x18 // I2C: Port B
    .equ sda_bit = 1
    .equ scl_bit = 0
    #endasm
    #include <ds1307.h>

    void main()
    {
    unsigned char hour,min,sec;
    char lcd_buffer[16];
    i2c_init();
    rtc_init(0,0,0);
    lcd_init(16);
    lcd_clear();
    lcd_gotoxy(0,0);
    rtc_set_time(21,1,2);
    delay_ms(20);
    lcd_clear();
    lcd_gotoxy(0,0);
    rtc_get_time(&hour,&min,&sec);
    sprintf(lcd_buffer,"Time= %u:%u:%u",hour,min,sec);
    lcd_puts(lcd_buffer);
    while(1);
    }
    [/code]

    توی پروتئوس این رو نشون میده:



    (اون مقاومت 1K هست) اشتباه چاپیه
    مدارشو که بستم اصلا هیچی نشون نمیده. اتصالات LCD درسته چون با یه برنامه دیگه تست کردم.

    اینم لینک فایل Codevision + پروتئوس:
    http://s3.picofile.com/file/8193920500/i2c.rar.html

    #2
    پاسخ : مشکل با DS1307

    باتری بک پ 3 ولتی آی سی رو وصل کن. دقت کن که scl و sda رو جابجا وصل نکرده باشی.
    اگه در قسمت help کدویژن ds1307 رو سرچ کنی و اولین گزینه ای رو که میاره باز کنی آخرین مثالش رو تست کن ببین جواب میگیری یا نه.
    www.gam-co.blogsky.com

    دیدگاه


      #3
      پاسخ : مشکل با DS1307

      سلام دوست عزیز
      یه سری اشکال داشتین
      برای کریستال خارجی باید خازن میذاشتین.
      و پایه soutو vbat نباید به زمین وصل بشه

      http://s3.picofile.com/file/8194045192/i2c.rar.html
      گفت که دیوانه نهی لایق این خانه نهی

      دیدگاه


        #4
        پاسخ : مشکل با DS1307

        نوشته اصلی توسط Finder_
        سلام دوست عزیز
        یه سری اشکال داشتین
        برای کریستال خارجی باید خازن میذاشتین.
        و پایه soutو vbat نباید به زمین وصل بشه

        http://s3.picofile.com/file/8194045192/i2c.rar.html
        اوه عجب اشتباهی . خازن :redface:
        نمی دونم چرا توی کد شما به این خط گیر نمیده، ولی برای من گیر میده. یعنی برنامه شما رو که با codevision کامپایل میکنم به این خط گیر نمیده. ولی برای برنامه من گیر میده. میگه باید 2 تا underline های هر 3تا خط رو بردارم!
        [code=c]
        #asm
        .equ __i2c_port = 0x18 // I2C: Port B
        .equ __sda_bit = 1
        .equ __scl_bit = 0
        #endasm
        [/code]

        دیدگاه


          #5
          پاسخ : مشکل با DS1307

          نوشته اصلی توسط davood11311
          اوه عجب اشتباهی . خازن :redface:
          نمی دونم چرا توی کد شما به این خط گیر نمیده، ولی برای من گیر میده. یعنی برنامه شما رو که با codevision کامپایل میکنم به این خط گیر نمیده. ولی برای برنامه من گیر میده. میگه باید 2 تا underline های هر 3تا خط رو بردارم!
          [code=c]
          #asm
          .equ __i2c_port = 0x18 // I2C: Port B
          .equ __sda_bit = 1
          .equ __scl_bit = 0
          #endasm
          [/code]
          شاید بخاطر اینه که شما توی CodeWizard قسمت i2c رو تیک زدین.
          خب اگه اینطوره، من اگه نخوام از CodeWizard استفاده کنم باید چیکار کنم؟
          چون میخوام 2 تا سنسور که با i2c کار میکنن رو به میکرو وصل کنم.

          دیدگاه


            #6
            پاسخ : مشکل با DS1307

            اگه نخواین از کدویزارد استفاده کنید باید ابتدا i2c رو راه اندازی کنید و توابع ds1307 رو خودتون بنویسید یا از یه کتابخونه بهش معرفی کنید.
            کتابخونه open source چیپ ds1307 فراوونه
            گفت که دیوانه نهی لایق این خانه نهی

            دیدگاه


              #7
              پاسخ : مشکل با DS1307

              خب از CodeWizard استفاده میکنم پس.
              من میخوام یه ds1307 و یه eeprom خارجی رو به میکرو وصل کنم که جفتش با i2c کار میکنه.
              برای ds1307 بعد از اینتخابش توی کدویزارد باید توی خطوط برنامه این دستورات رو بنویسیم:
              [code=c]
              #asm
              .equ __i2c_port = 0x18 // I2C: Port B
              .equ __sda_bit = 1
              .equ __scl_bit = 0
              #endasm
              [/code]

              تا اینجا بیت های 0 و 1 از پورت B به ds1307 اختصاص داده میشه.
              حالا eeprom خارجی رو چجوری تعریق کنم که مثلا به بیت های 2 و 3 از پورت B وصل بشه؟

              دیدگاه


                #8
                پاسخ : مشکل با DS1307

                eeprom رو با twi متصل کن
                گفت که دیوانه نهی لایق این خانه نهی

                دیدگاه

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