NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 5368 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 2 از 2

موضوع: کمک فوری در مورد تنظیماتds1307 در کدویزارد

  1. #1
    تازه وارد
    تاریخ عضویت
    Aug 2009
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض کمک فوری در مورد تنظیماتds1307 در کدویزارد

    سلام
    پروژه من با atmmega16 و codevision avr هست.
    من در پروژم از تراشه ds1307 استفاده کردم که البته کار نمیکنه
    فکر می کنم اشکال از تنظیمات ds1307 در کدویزارد هست.
    در کدویزارد دو لبه در رابطه با پروتکل i2c هست یکی:i2c که من در این لبه تراشه ی DS1307 رو اینیبل کردم.و دومی i2c(2wire) که من نمی دونم باید این لبه رو هم تنظیم کنم یا نه؟ و اگر بله به چه صورت؟
    لطفا منو راهنمایی کنید من وقت زیادی ندارم.

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2009
    نوشته ها
    63
    تشکر
    0
    تشکر شده 8 بار در 7 پست

    پیش فرض RE: کمک فوری در مورد تنظیماتds1307 در کدویزارد

    سلام
    شما باید به پالت I2C مراجعه کنید و پورتی که میخوایید ایسی رو به اون متصل کنید رو مشخص کنید ، بعد در همون پنجره ایسی رو که میخوایید براش برنامه بنیوسید رو انتخاب کنید (تیکش رو بزنید ) (نیازی بخش i2c(2wire) نیست )
    بخش i2c(2wire) برای ایجاد ارتباط سریال به میکرو ها و... هست در این بخش شما باید خوتون توابع رو بنویسید و کتابخونه ای وجود نداره .
    در بخش i2c کتابخونه های اماده برای بعضی از ایسی های I2C وجود داره و شما فقط باید ایسی رو انتخاب کنید تا کد اون به برنامه اضافه بشه .

    اینم یه مثال که قبلا داشتم :
    کد:
    include <mega16.h>
    #include <stdio.h>
    #include <delay.h>
    #include <stdlib.h>
    #include <string.h>
    // I2C Bus functions
    #asm
       .equ __i2c_port=0x12 ;PORTD
       .equ __sda_bit=0
       .equ __scl_bit=1
    #endasm
    #include <i2c.h>
    
    // DS1307 Real Time Clock functions
    #include <ds1307.h>
    
    // Alphanumeric LCD Module functions
    #asm
       .equ __lcd_port=0x15 ;PORTC
    #endasm
    #include <lcd.h>
    
    // Declare your global variables here
    unsigned int di,moi,yi;
    
    void main(void)
    {
    // Declare your local variables here
     unsigned char h,m,s;
     unsigned char d,mo,y;
     char lcda[16],lcdb[16]; 
     
    PORTA=0x00;
    DDRA=0x00;
    
    PORTB=0x00;
    DDRB=0x01;
    
    PORTC=0x00;
    DDRC=0x00;
    
    PORTD=0x00;
    DDRD=0x03;
    
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    
    
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;
    
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;
    
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
    
    // I2C Bus initialization
    i2c_init();
    
    // DS1307 Real Time Clock initialization
    // Square wave output on pin SQW/OUT: On
    // Square wave frequency: 1Hz
    rtc_init(0,1,0);
    
    // LCD module initialization
    lcd_init(16);
    di=29;moi=12;yi=86;
    //i2c_start();
    rtc_set_time(23,59,53);
    rtc_set_date(di,moi,yi);
    //i2c_stop();
    
    while (1)
          { 
          // Place your code here
          // i2c_start();
           rtc_get_time(&h,&m,&s);
           rtc_get_date(&d,&mo,&y);
          // i2c_stop();
           sprintf(lcda,"Time:%02u:%02u:%02u",h,m,s);
           sprintf(lcdb,"Date:%02u/%02u/%02u",d,mo,y);
           lcd_clear();
           lcd_gotoxy(0,0);
           
           lcd_puts(lcda); 
           
           lcd_putsf(" ");
           if(h<=12 ) lcd_putsf("AM");
           else       lcd_putsf("PM");
           lcd_gotoxy(0,1);   
           lcd_puts(lcdb);
           delay_ms(1000);
          };
    }
    موارد زیر رو هم باید رعایت کنید تا جواب بگیرید :
    1- کریستال متصل به ds1307 حتی الامکان در نزدیک ایسی باشد
    2- در صورتی که روغن لحیم و... برای لحیم کردن برد استفاده میکنید ، اطراف کریستال را کاملا پاک کنید .

  4. تشکرها از این نوشته :


موضوعات مشابه

  1. یک مشکل با ویزاد Clock Configuration
    توسط Aghaeifar در انجمن LPC series (NXP)
    پاسخ: 0
    آخرين نوشته: 08-09-2012, 23:18
  2. بررسی اشکالات موجود در برنامه کدویزاردarm
    توسط amir_rahmani در انجمن AT91 series (ATMEL)
    پاسخ: 1
    آخرين نوشته: 30-10-2010, 14:35
  3. کدویزارد برای LPC210x
    توسط Aghaeifar در انجمن LPC series (NXP)
    پاسخ: 0
    آخرين نوشته: 15-10-2010, 16:45
  4. کدویزارد برای arm
    توسط hamid69 در انجمن AT91 series (ATMEL)
    پاسخ: 6
    آخرين نوشته: 16-07-2010, 14:15
  5. کد ویزارد برای اسمبلی AVR :-o
    توسط hamid69 در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 0
    آخرين نوشته: 13-07-2010, 18:59

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •