ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 14
  1. #1
    2006/12/02
    بندرانزلی
    2,478
    55

    راه اندازی AD7715 (همراه با سورس و شماتیک)

    این مطالب رو قبلا توی سایت خودم گذاشته بودم ولی از اونجایی که بازدید کننده های اینجا بیشتره، اینجا هم میذارم شاید به درد کسی بخوره.
    ================================================== ===========

    AD7715 یک مبدل آنالوگ به دیجیتال ۱۶ بیتی از نوع سیگما دلتا است. این ADC از پروتکل SPI پشتیبانی میآ*کند و آن را میآ*توان به راحتی با میکروکنترلر مرتبط کرد.
    دارای رنج ولتاژ تغذیه ۳-۵ ولت ، قابلیت مدیرت توان مصرفی (مد استندبای)، و قابیلت دریافت ورودی در دوحالت تک قطبی و دیفرانسیلی است. همچنین میآ*تواند سیگنالآ*های ورودی را با بهرهآ*ای قابل کنترل تقویت کند.
    ضریب غیر خطی بودن آن ۰٫۰۰۱۵ +/- است.
    این IC دارای ۴ رجیستر برای تنظیم ،تست و خروجی دیتا است.


    رجیسترهای AD7715:

    Communication Register

    Setup Register

    DATA Register

    Test Register

    توضیح رجیستر ها:

    Communication Register:

    G2 G1 STBY R/W RS0 RS1 Zero 0/DRDY


    0/DRDY:این بیت دارای دو کاربرد مختلف برای زمان های نوشتن و خواندن است.

    در زمان نوشتن در رجیستر ها، این بیت باید صفر شود تا بتوان تغییری در جیستر داد.

    در زمان خواندن، این بیت وضعیت پرچم(Flag) آماده بودن دیتا را نشان میآ*دهد.یعنی هنگامی که این بیت صفر شد، دیتا آمادهآ*ی ارسال است و میآ*توان آن را از AD7715 دریافت کرد.

    Zero: برای نوشتن یا خواندن این بیت باید صفر باشد. در غیر این صورت نتایج معتبر نخواند بود.

    RS0 و RS1: توسط این بیت ها میآ*توان طبق جدول زیر به کلیه رجیستر ها دسترسی داشت.

    RS0 RS1 رجیستر:
    ۰ ۰ ارتباط
    Setup 1 0
    TEST 0 1
    DATA 1 1



    R/W:این بیت برای انتخاب نوع عملیات به کار میآ*رود. برای عمل نوشتن این بیت باید ۰ و برای عمل خواندن باید ۱ باشد.

    STBY : برای بردن AD7715 به مد استندبای، باید این بیت را ۱ کرد.

    G1 و G0 : توسط این بیت ها میآ*توان طبق جدول زیر سیگنال ورودی را چند برابر تقویت کرد:
    Gain G2 G1
    1 0 0
    2 1 0
    32 0 1
    128 1 1


    Setup Register :

    FSYNC BUF B/U FS0 FS1 CLK MD0 MD1

    MD1 و MD0 :توسط این بیتآ*ها میآ*توان مد عملکرد AD7715 را طبق جدول زیر انتخاب کرد:

    MD0 MD1 وضعیت
    Normal Mode 0 0
    Self-Calibration 1 0
    Zero-Scale System Calibration 0 1
    Full-Scale System Calibration 1 1

    Normal Mode : مد نرمال برای عملکرد AD7715، مد پیشفرض بعد از راه اندازی یا ریست

    Self-Calibration: برای انتخاب Self-Calibration این بیت باید ۱ شود. بعد از اتمام عملیات، AD7715 به مد نرمال میآ*رود.

    در زمان انجام Self-Calibration ، DRDY به سطح بالا رفته و هنگام پایان عملیات به سطح صفر میآ*رود. در این هنگتم مقدار دیتا جدید آماده میآ*باشد.

    Zero-Scale System Calibration: در این مد سیستم در مقدار ۰ کالیبره میآ*شود.

    Full-Scale System Calibration: در این مد سیستم در حداکثر مقدار خود کالیبره میآ*شود.


    CLK : د صورت استفاده از کلاک پالس با فرکانس ۱MHz ، این بیت باید ۰ باشد. برای کلاک پالس با فرکانس ۲٫۴۵۷۶Mhz ، مقدار ۱ انتخاب میآ*شود.

    FS1 و FS0 : توسط این دو بیت ، حداکثر زمان تبدیل ، نمونه برداری و به روز رسانی خروجی ،طبق بر اساس جدول زیر تعیین میآ*شود:


    B/U :در صورتی که ورودی به صورت تک قطبی باشد ،مقدار ۱ و در صورتی که ورودی دیفرانسیلی باشد، مقدار ۰ انتخاب میآ*شود.

    BUF : توسط این بیت میآ*توان بافر روی ورودی را فعال کرد.در صورت فعال کردن بافر، بافر به صورت سری با ورودی قرار میآ*گیرد و امپدانس ورودی بیشتری را ارائه میآ*کند. در نتیجه مقدار جریانی که از ورودی کشیده میآ*شود کاهش خواد یافت و نویز خروجی به حداقل مقدار خود خواهد ر.

    برای مثال جریان مصرفی برای تمامی بهرهآ*ها در فرکانس ۱MHz ، یا بهره ۱ و ۲ در فرکانس ۲٫۴۵۷۶MHz ، ۲۵۰uA و برای بهرهآ*های ۳۲ و ۱۲۸ در فرکانس ۲٫۴۵۷۶MHz ، مقدار جریان مصرفی ۵۰۰uA خواهد بود.

    FSYNC: در صورتی که این بیت ۱ باشد، لاجیک کنترل فیلتر دیجیتال و لاجیک کنترل کالیبراسیون در وضعیت ریست نگه داشته خواهد شد.مدولاتور آنالوگ هم در وضعیت ریستآ*اش خواهد بود. هنگامی که این بیت ۱ شود، فیلتر و مدولاتور شروع به پردازش دیتا خواهند کرد.

    Test Register:
    این رجیستر به منظور تست AD7715 به کار میآ*رود و نباید توسط کاربر تغییر داده شود.

    DATA Register :
    دیتا آماده شده در این رجیستر قرار میآ*گیرد.این رجیستر ۱۶ بیتی و فقط خواندنی است. اگر عملیات نوشتن بر روی این رجیستر انجام گیرد، نامعتبر بوده و توسط AD7715 نادیده گرفته خواهد شد.

    -------------
    پ.ن: با این که خیلی سعی کردم مطالب درست نمایش داده بشه، با این وجود به خاطر بدقلقیآ*های ایدیتور فروم، بعضی جاها(مخصوصا جداول) یه مقدار به هم ریختگی داره.به بزرگواری خودتون ببخشید و یا به سایتم مراجعه کنید.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


  2. #2
    2006/12/02
    بندرانزلی
    2,478
    55

    راه اندازی AD7715 (همراه با سورس و شماتیک)

    مدار نمونه:

    در این مدار AD7715 به صورت تک قطبی ، با فرکانس ۲٫۴۵۷۶MHz ، نرخ به روز رسانی خروجی ۵۰Hz همراه با بافر ورودی به کار رفته است.


    ابتدا باید رجیستر ارتباط را مقدار دهی کرد:


    G2 G1 STBY R/W RS0 RS1 Zero 0/DRDY
    0 0 0 0 1 0 0 0


    Comm_reg = &B00010000

    با انتخاب ۰۱ برای بیت های RS ، رجیستر Setup برای مرحله بعد انتخاب شده است.

    حالب به مقدار دهی رجیستر Setup میآ*پردازیم:
    FSYNC BUF B/U FS0 FS1 CLK MD0 MD1
    0 1 1 0 0 1 1 0

    توسط این رجیستر ، بافر ، مد تک قطبی،مد Self-Calibration ، منبع کلاک پالس۲٫۴۵۷۶MHz و نرخ به روز رسانی خروجی ۵۰ هرتز انتخاب شده است.

    Setup_reg = &B01100110


    بعد از مقدار دهی رجیستر ها، باید منتظر بمانیم تا دیتا اندازه گیری و آمادهآ*ی ارسال گردد. با آماده شدن دیتا، پایه DRDY ، به سطح صفر خواهد رفت. در این هنگام میآ*توانیم با ارسال مقدار زیر به IC ،دیتا را ۲بار و هر بار به صورت ۸ بیت دریافت کنیم.بایت پرارزش ابتدا و بایت کم ارزش در انتها دریافت خواهد شد.

    G2 G1 STBY R/W RS0 RS1 Zero 0/DRDY
    0 0 0 1 1 1 0 0

    Read_reg = &B00111000

    تبدیل دو بایت به یک اینتجر:

    Complete_data = Makeint(data_lsb , Data_msb)


    بعد از باز سازی عدد مورد نظر از بایت های دریافتی باید ولتاژ اندازه گیری شده را مشخص نماییم:




    ولتاژ مرجع میآ*تواند به وسیله یک رگولاتور ،دیود زنر یا قطعات مخصوص تهیه ولتاژ مرجع مانند LM336 تهیه شود.

    بدیهی است که رنج اندازه گیری بین ۰ و مقدار ولتاژ رفرنس خواهد بود.

    دانلود سورس کد (Bascom-AVR):

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    دانلود شماتیک (فایل پروتئوس،بدون امکان شبیه سازی):

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


  3. #3
    2006/03/24
    ECA
    2,425
    242

    پاسخ : راه اندازی AD7715 (همراه با سورس و شماتیک)

    تا به حال با این آی سی ها کار نکردم !
    تا چه فرکانسی رو می تونند نمونه برداری کنند ؟
    نرخ نمونه برداری اینا چقدره ؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


  4. #4
    2006/12/02
    بندرانزلی
    2,478
    55

    پاسخ : راه اندازی AD7715 (همراه با سورس و شماتیک)

    نقل قول نوشته اصلی توسط فرشاد اکرمی
    تا چه فرکانسی رو می تونند نمونه برداری کنند ؟
    نرخ نمونه برداری اینا چقدره ؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


  5. #5
    2005/06/10
    بابل
    1,808
    35

    پاسخ : راه اندازي AD7715 (همراه با سورس و شماتيک)

    سلام.
    تشکر از دوستان عزيز که مطالب بسيار مفيدي در خصوص AD7715 در سايت گذاشتن. من حدود نيم ساعتي در سايت و اينترنت دنبال کتابخونه AD7715 براي التيم(پروتل قديم) گشتم ولي متاسفانه چيز قابل استفاده اي پيدا نکردم. کتابخونه رو درست کردم و ضميمه اين پست کردم.
    اميدوارم مفيد باشه(و چرخ رو از اول اختراع نکرده باشم :mrgreen

    کلمات کليدي:
    AD7715 library، کتابخانه AD7715 و AD7715 Altium Library
    موفق باشيد
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar AD7715.rar (8.6 کیلو بایت, 291 نمايش)
    • نوع فایل: rar AD7715.rar (8.6 کیلو بایت, 264 نمايش)
    • نوع فایل: rar AD7715.rar (8.6 کیلو بایت, 258 نمايش)
    • نوع فایل: rar AD7715.rar (8.6 کیلو بایت, 258 نمايش)
    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ*ي جهاد فيآ*سبيلآ*الله.
    هجرت، هجرت از سنگينيآ*هاست و جاذبهآ*هايي كه تو را به خاك ميآ*چسباند.
    چكمهآ*هايت را بپوش، رهآ*توشهآ*ات را بردار و هجرت كن.
  6. #6
    2011/08/23
    دامغان
    621
    11

    پاسخ : راه اندازي AD7715 (همراه با سورس و شماتيک)

    سلام داداش
    من هرچي تو اين مقاله نگا کردم وظيفه پايه ريست رو نفهميدم
    1-الان وقتي ريست مي کنيم همه مقادير ريجستر ها پاک مي شن؟؟؟؟؟
    2-پايه cs دقيقا چيکار مي کنه؟؟؟؟
    3-کسي با زبان c برنامه اي براش نوشته (کد ويژن)
    لطفا هر سه سوال رو پاسخ بديد...
  7. #7
    2011/08/23
    دامغان
    621
    11

    پاسخ : راه اندازي AD7715 (همراه با سورس و شماتيک)

    سلام
    اين برنامه رو باتوجه به برنامه آقاي رضايي نوشتم
    اما جواب نمي ده
    کمک کنيد


    کد:
    
    /*****************************************************
    This program was produced by the
    CodeWizardAVR V1.24.6 Professional
    Automatic Program Generator
    © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    e-mail:office@hpinfotech.com
    
    Project : 
    Version : 
    Date  : 7/9/2012
    Author : F4CG              
    Company : F4CG              
    Comments: 
    
    
    Chip type      : ATmega8
    Program type    : Application
    Clock frequency   : 16.000000 MHz
    Memory model    : Small
    External SRAM size : 0
    Data Stack size   : 256
    *****************************************************/
    
    #include <mega8.h> 
    #include <delay.h> 
    #include <stdlib.h> 
    #include <string.h> 
    unsigned char a ;
    unsigned char comm_reg =0b00010000;
    unsigned char setup_reg =0b01100110 ;
    unsigned char read_reg=0b00111000 ;
    unsigned char data_msb ;
    unsigned char data_isb  ;
    unsigned long int sum ;  
    char s1 [16] ;
    // Alphanumeric LCD Module functions
    #asm                
    
      .equ __lcd_port=0x12 ;PORTD
    #endasm
    #include <lcd.h>
    
    // SPI functions
    #include <spi.h>
    
    // Declare your global variables here
    
    void reset (void)
    {
    PORTC.1=0;
    
    PORTC.1=1;
    }
    char g  ;
    unsigned int n ;
    
     char javab (unsigned int a , unsigned int b )
     {
     g=0 ;
     while(g<=7){
     g++ ;
     a=a<<1 ;
     }
     n= a&b ;
     return n ;
     
     }
     
     
     
     
     
    
    
    void main(void)
    {
    // Declare your local variables here
    
    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=Out Func4=In Func3=Out Func2=Out Func1=In Func0=In 
    // State7=T State6=T State5=0 State4=T State3=0 State2=0 State1=T State0=T 
    PORTB=0x00;
    DDRB=0x2C;
    
    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State6=P State5=P State4=P State3=P State2=P State1=P State0=P 
    PORTC=0b100;
    DDRC=0b00000011;
    
    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTD=0x00;
    DDRD=0x00;
    
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    TCCR0=0x00;
    TCNT0=0x00;
    
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    
    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    MCUCR=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;
    
    // SPI initialization
    // SPI Type: Master
    // SPI Clock Rate: 4000.000 kHz
    // SPI Clock Phase: Cycle Half
    // SPI Clock Polarity: Low
    // SPI Data Order: MSB First
    SPCR=0x50;
    SPSR=0x00;
    
    // LCD module initialization
    lcd_init(16);
    
       
       PORTC.0=0;
       reset ();
       spi (comm_reg);
       spi (setup_reg);
       PORTC.0=1;    
    
    
    
    
    while (1)
       { 
        PORTC.0=0;
        reset (); 
        spi (read_reg);
        delay_ms(30); 
        data_msb=spi (0);
        data_isb=spi (0) ;
        sum=javab (data_msb,data_isb) ; 
        PORTC.0=1; 
        itoa (sum , s1);
        lcd_clear () ;
        lcd_puts (s1) ; 
        delay_ms (20);
        
       
       
    
       };
    }
  8. #8
    2005/06/10
    بابل
    1,808
    35

    پاسخ : راه اندازي AD7715 (همراه با سورس و شماتيک)

    نقل قول نوشته اصلی توسط mmh1
    سلام داداش
    من هرچي تو اين مقاله نگا کردم وظيفه پايه ريست رو نفهميدم
    1-الان وقتي ريست مي کنيم همه مقادير ريجستر ها پاک مي شن؟؟؟؟؟
    2-پايه cs دقيقا چيکار مي کنه؟؟؟؟
    3-کسي با زبان c برنامه اي براش نوشته (کد ويژن)
    لطفا هر سه سوال رو پاسخ بديد...
    سلام.
    دارم يه کتابخونه براي اين تراشه با پردازنده XMEGA آماده مي کنم. انشاالله تستش کردم اينجا قرار ميدم.
    در خصوص سوالات شما
    پايه ريست واسط سريال رو ريست ميکنه و باعث ميشه که تراشه به وضعت روشن شدن بازنشاني بشه يعني بايتي که ارسال مي شه براي نوشتن يا خوندن از رجيستر صفر يا همون رجيستر ارتباطي هست. اين عمل به بقيه بخش هاي تراشه نداره ولي پايه CS کلا تراشه رو غير فعال ميکنه و خروجي ها رو هاي امپدانس مي کنه.
    عين عبارت برگه اطلاعات تراشه به صورت زير هست:
    The serial interface can be reset by exercising the RESET input on the part. It can also be reset by writing a series of 1s on the DIN input. If a Logic 1 is written to the AD7715 DIN line for at least 32 serial clock cycles, the serial interface is reset. This ensures that in three-wire systems that if the interface gets lost either via a software error or by some glitch in the system, it can be reset back into a known state.
    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ*ي جهاد فيآ*سبيلآ*الله.
    هجرت، هجرت از سنگينيآ*هاست و جاذبهآ*هايي كه تو را به خاك ميآ*چسباند.
    چكمهآ*هايت را بپوش، رهآ*توشهآ*ات را بردار و هجرت كن.
  9. #9
    2011/10/17
    تهران
    288
    1

    پاسخ : راه اندازي AD7715 (همراه با سورس و شماتيک)

    با سلام خدمت دوستان

    براي راه اندازي ad7715 يه کد نوشتم ولي جواب هايي که دريافت ميکنم 0 هستش !!

    من شماتيک و کدم رو باتوجه به مطلب جناب رضايي تنظيم کردم ، هر دو تا رو اينجا قرار ميدم دوستاني که آشنايي کار با اين IC رو دارند لطفا کمک کنن، با تشکر

    کد:
    /*****************************************************
    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Automatic Program Generator
    © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    
    Project : 
    Version : 
    Date  : 2013-06-13
    Author : Eric
    Company : Techno-Electro
    Comments: 
    
    
    Chip type        : ATmega8
    Program type      : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model      : Small
    External RAM size    : 0
    Data Stack size     : 256
    *****************************************************/
    
    #include <mega8.h>
    #include <delay.h>
    #include <stdlib.h>
    // Standard Input/Output functions
    #include <stdio.h>
    
    // SPI functions
    #include <spi.h>
    
    //micros
    #define Data_ready PORTB.1
    #define Chip_select PORTD.7
    #define Reset_chip PORTD.6
    #define ad7715 PORTB.2
    //#define num_sample 100
    // Declare your global variables here
    int result,result_sum,result_av,temp;
    char a,s[6]; 
    void ad7715_init()
      {
        spi(0x10);
        spi(0x6C);
      } 
      
    void reset()
      {
       Reset_chip=0;
       Reset_chip=1;
      }
      
    void main(void)
    {
    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=Out Func4=In Func3=Out Func2=Out Func1=In Func0=In 
    // State7=T State6=T State5=0 State4=T State3=0 State2=0 State1=T State0=T 
    PORTB=0x00;
    DDRB=0x2C;
    
    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTC=0x00;
    DDRC=0x00;
    
    // Port D initialization
    // Func7=Out Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=1 State6=1 State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTD=0xC0;
    DDRD=0xC0;
    
    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: Off
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 1200
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    UBRRH=0x01;
    UBRRL=0xA0;
    
    // SPI initialization
    // SPI Type: Master
    // SPI Clock Rate: 62.500 kHz
    // SPI Clock Phase: Cycle Start
    // SPI Clock Polarity: Low
    // SPI Data Order: MSB First
    SPCR=0x53;
    SPSR=0x00;
    
    Chip_select=0;
    reset();
    ad7715_init();
    Chip_select=1;
    while (1)
       { 
         
         
              
            while(Data_ready==1);
            Chip_select=0;
            reset(); 
            spi(0x38); 
            delay_ms(40);
              
            result=(spi(0)<<8);     //read MSB frist
            result|=spi(0);      //read LSB and combine with MSB
            delay_ms(30);
            Chip_select=1;
        
            itoa(result,s);
        
            puts(s); 
            
            delay_ms(500);
        
        }
       
          
    }

    به رویاهات فکر کن!!
  10. #10
    2013/07/08
    1
    0

    پاسخ : راه اندازي AD7715 (همراه با سورس و شماتيک)

    سلام من اين برنامرو واسه راه اندازي AD7715 نوشتم اما خروجي دائم به ازاي هر ورودي 1 ميده لطفا اگه به ذهنتون ميرسه چه مشکلي داره راهنمايي کنيد.
    کد:
    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Automatic Program Generator
    © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    
    Project : 
    Version : 
    Date  : 7/11/2013
    Author : Rouh
    Company : SUTech
    Comments: 
    
    
    Chip type        : ATmega16A
    Program type      : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model      : Small
    External RAM size    : 0
    Data Stack size     : 256
    *****************************************************/
    
    #include <mega16a.h>
    
    // Standard Input/Output functions
    
    #include <stdio.h>
    #include <delay.h>
    #include <stdlib.h>
    // SPI functions
    #include <spi.h>
    
    // Declare your global variables here
    char comm_reg1 = 0b00000000;
    char comm_reg2 = 0b00010000;
    char setup_reg = 0b00011000;
    char read_reg = 0b00111000;
    int result=0;
    char* a;
    void main(void)
    {
    // Declare your local variables here
    
    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTA=0x00;
    DDRA=0x00;
    
    // Port B initialization
    // Func7=Out Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In 
    // State7=0 State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T 
    PORTB=0x00;
    DDRB=0xB0;
    
    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTC=0x00;
    DDRC=0x00;
    
    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTD=0x00;
    DDRD=0x00;
    
    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: On
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 9600
    UCSRA=0x00;
    UCSRB=0x18;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x33;
    
    // SPI initialization
    // SPI Type: Master
    // SPI Clock Rate: 62.500 kHz
    // SPI Clock Phase: Cycle Start
    // SPI Clock Polarity: Low
    // SPI Data Order: MSB First
    SPCR=0x53;
    SPSR=0x00;
    PORTB.1=0;
    PORTB.2=0;
    result=spi(comm_reg1);
    result=spi(comm_reg2);
    result=spi(setup_reg);
    PORTB.1=1;
    PORTB.2=1;
        PORTC.1=1;
    while (1)
       {
       while(!(PINB.3)){
       putchar('\n');
       PORTB.1=0;
       PORTB.2=0;
       PORTB.2=1;
       result=spi(read_reg);
       delay_ms(40);
       /* read the MSB using SPI */
        result=(unsigned) spi(0)<<8;
        /* read the LSB using SPI and combine with MSB */
        result|=spi(0);
            delay_ms(30);
        PORTB.1=1;
        itoa(result,a);
         puts(a);
                }
       }
    }
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 14

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

  1. پاسخ: 20
    آخرين نوشته: 2015/08/15, 14:56
  2. پاسخ: 3
    آخرين نوشته: 2015/05/08, 23:39
  3. پاسخ: 0
    آخرين نوشته: 2013/07/05, 23:54
  4. برد AT91SAM7X256 همراه با PCB و شماتیک + دانلود
    توسط مهدی مهری در انجمن ATMEL
    پاسخ: 1
    آخرين نوشته: 2010/12/27, 11:39
  5. فایل منجر AVR-DOS به همراه فرمت کردن همه نوع مموری کارت (سورس)
    توسط alitaroosheh در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2009/05/03, 16:52

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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