اطلاعیه

Collapse
No announcement yet.

تاپیک سوالات درباره ADC

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

    تاپیک سوالات درباره ADC

    سلام

    برای کار با تبدیل آنالوگ به دیجیتال به مشکل خوردم. می خوام مقدار 5 تا سنسور رو بخونم. ولی از کد ویزارد فقط می شه 4 تا پین رو تنظیم کرد. یعنی برای هر کانال یه پین.
    قبل از اینکه من رو متهم کنید که محدود به کدویزاردم بگم که با رجیستر هاشم کار کردم یعنی رجیستر مالتی پلکسر اون کانالی که باهاش کار می کردم رو عوض کردم. وقتی یه بار این کار رو اول برنامه می کنم درست کار می کنه. یعنی عوض می شه.
    اما وقتی داخل برنامه این کار رو می کنم که هر سیکل پینی که خونده می شه عوض شه. درست کار نمی کنه یعنی هر دو تا مقداری که می خونه برای یه کانال هستن و با هم یکی هستن.
    تنظیمات کدویزارد و برنامه رو این زیر میارم:
    ADC clock frequency: 62.5 khz
    adc resolution: 12 bit
    adc conversion mode: unsigned
    adc refrence: Aref pin on port B
    conversion start mode: channels trigged by software
    input mode: single ended positive inout signal

    while (1)
    {

    lcd_clear();


    for (i=0;i<4;i++)
    as[i]=adcb_read(i);


    if (temp)
    {
    ADCB.CH3.MUXCTRL=ADCB.CH3.MUXCTRL | ADC_CH_MUXPOS_PIN7_gc;
    as2[0]=as[3];
    }
    else
    {
    ADCB.CH3.MUXCTRL=ADCB.CH3.MUXCTRL | ADC_CH_MUXPOS_PIN3_gc;
    as2[1]=as[3];
    }


    temp=!temp;

    lcd_gotoxy(15,0);
    lcd_putchar(temp+48);


    itoa(as[0],a);
    lcd_gotoxy(0,0);
    lcd_puts(a);

    itoa(as[1],a);
    lcd_gotoxy(6,0);
    lcd_puts(a);

    itoa(as[2],a);
    lcd_gotoxy(0,1);
    lcd_puts(a);

    itoa(as2[0],a);
    lcd_gotoxy(6,1);
    lcd_puts(a);

    itoa(as2[1],a);
    lcd_gotoxy(11,1);
    lcd_puts(a);

    delay_ms(150);

    }
    }

    #2
    پاسخ : تاپیک سوالات درباره ADC

    کدی که قرار داده اید به دلیل مشکل ادیتور تغییر شکل پیدا کرده و برای خواناتر شدن آن از گزینه ای که برای قرار دادن کد وجود دارد، استفاده کنید. همچنین این کد به شدت ناقص است و اولا برای دیگران قابل استفاده نیست و دوم اینکه امکان پاسخ دهی درست را فراهم نمی کند (در همین شرایط هم نوع مقداردهی شما به رجیستر ها درست به نظر نمی رسد). بنابراین کد قرار داده شده را تکمیل و تصحیح کنید تا امکان کمک به رفع مشکل شما فراهم شود.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #3
      پاسخ : تاپیک سوالات درباره ADC

      به روی چشم :agree:

      کد:
      void main(void)
      {
      unsigned int adc_data[4];
      unsigned int adc_data2[2];
      char temp_str[10];
      int i,temp=1;
      
      // Declare your local variables here
      unsigned char n;
      
      // Interrupt system initialization
      // Optimize for speed
      #pragma optsize- 
      // Make sure the interrupts are disabled
      #asm("cli")
      // Low level interrupt: Off
      // Round-robin scheduling for low level interrupt: Off
      // Medium level interrupt: Off
      // High level interrupt: Off
      // The interrupt vectors will be placed at the start of the Application FLASH section
      n=(PMIC.CTRL & (~(PMIC_RREN_bm | PMIC_IVSEL_bm | PMIC_HILVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_LOLVLEN_bm)));
      CCP=CCP_IOREG_gc;
      PMIC.CTRL=n;
      // Set the default priority for round-robin scheduling
      PMIC.INTPRI=0x00;
      // Restore optimization for size if needed
      #pragma optsize_default
      
      // System clocks initialization
      system_clocks_init();
      
      // Ports initialization
      ports_init();
      
      // Virtual Ports initialization
      vports_init();
      
      // ADCB initialization
      adcb_init();
      
      // Alphanumeric LCD initialization
      // Connections specified in the
      // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
      // RS - PORTF Bit 2
      // RD - PORTF Bit 1
      // EN - PORTF Bit 0
      // D4 - PORTE Bit 4
      // D5 - PORTE Bit 5
      // D6 - PORTE Bit 6
      // D7 - PORTE Bit 7
      // Characters/line: 16
      lcd_init(16);
      
      temp=1;
      
      while (1)
         {
         
         lcd_clear();
         
            
         //here I read adc channels by adcb_read
         for (i=0;i<4;i++)
          adc_data[i]=adcb_read(i);
         
         
         //this part changes adc pin of channel 0 from 3 to 7 or vice versa 
         if (temp)
          {
          ADCB.CH3.MUXCTRL=ADCB.CH3.MUXCTRL |	ADC_CH_MUXPOS_PIN7_gc;
          adc_data2[0]=adc_data[3];
          }
         else
          {
          ADCB.CH3.MUXCTRL=ADCB.CH3.MUXCTRL |	ADC_CH_MUXPOS_PIN3_gc;
          adc_data2[1]=adc_data[3];
          }
         
         //here the variable temp becomes reversed because I want to read the other adc pin in next cycle
         temp=!temp; 
         
         //this part shows adc outputs on lcd
         lcd_gotoxy(15,0);
         lcd_putchar(temp+48); 
         
         
         itoa(adc_data[0],temp_str);
         lcd_gotoxy(0,0);
         lcd_puts(temp_str);  
         
         itoa(adc_data[1],temp_str);
         lcd_gotoxy(6,0);
         lcd_puts(temp_str);
         
         itoa(adc_data[2],temp_str);
         lcd_gotoxy(0,1);
         lcd_puts(temp_str);
         
         itoa(adc_data2[0],temp_str);
         lcd_gotoxy(6,1);
         lcd_puts(temp_str);
         
         itoa(adc_data[1],temp_str);
         lcd_gotoxy(11,1);
         lcd_puts(temp_str); 
         
         delay_ms(150);
      
         }
      }

      دیدگاه


        #4
        پاسخ : تاپیک سوالات درباره ADC

        جدا از اینکه در برنامه شما تنظیمات اولیه برای ADC مشخص نیست و همچنان بخش هایی از آن مبهم است، اما مشخص است که دستوراتی که برای تغییر Multiplexer بکار برده اید صحیح نیست. اگر رجیستری یکبار با 0x18 و بار دیگر با 0x38 بصورت متوالی OR شود، همیشه حالت دوم برقرار خواهد بود. روش درست بصورت زیر است:

        کد:
        ADCB.CH3.MUXCTRL=(ADCB.CH3.MUXCTRL & ~ADC_CH_MUXPOS_gm) |  ADC_CH_MUXPOS_PIN3_gc;


        کد:
        ADCB.CH3.MUXCTRL=(ADCB.CH3.MUXCTRL & ~ADC_CH_MUXPOS_gm) |  ADC_CH_MUXPOS_PIN7_gc;
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          #5
          پاسخ : تاپیک سوالات درباره ADC

          ممنون مهندس
          کارم راه افتاد
          تنظیمات ADC رو تو پست اولم داده بودم
          فقط دو تا مسئله:
          اگه امکانش هست توضیح بدید که هرکدوم از این رجیسترا برای چه کاری هستن.
          پی دی اف doc8077XmegaA رو دارم. اگه تو این پی دی اف هست بگید کجاشه خودم می رم دنبالش
          یه سوال دیگه
          وقتی ورودی رو به صفر وصل می کنم مقداری که ADC میده صفر نیست و 175 می ده که وقتی نسبتش رو با 3.3 ولت مقایسه می کنیم 0.14 خطا داره
          سعی کردم از adc input connected to gnd for offset compensation استفاده کنم ولی درست نشد یعنی صفر رو درست می ده ولی دیگه 3.3 رو بجای 4096 می ده 3923
          باز هم ممنون

          دیدگاه


            #6
            پاسخ : تاپیک سوالات درباره ADC

            در XMEGA A manual یا همان doc8077 یک فصل به ADC اختصاص داده شده و در مورد آن توضیح داده شده است.همچنین در AVR1300 که نام فایل آن doc8032 است، توضیحات تکمیلی آورده شده است. دلیل اینکه با صفر کردن ورودی ADC در خروجی مقدار غیر صفر قرائت می شود این است که از مد Unsigned استفاده کرده اید. در این مورد باید به توضیحات متون گفته شده مراجعه کنید.
            اوژن: به معنای افکننده و شکست دهنده است
            دانایی، توانایی است-Knowledge is POWER
            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

            دیدگاه


              #7
              پاسخ : تاپیک سوالات درباره ADC

              سلام.
              من هم سوالی در مورد ADCآ‌ دارم گفتم همینجا بحث رو مطرح کنم که پست ها پراکنده نباشه.
              همونطور که میدونید در struct های ارائه شده همراه xmega دو تا struct وجود داره.
              یکی ADC_t و دیگری ADC_CH_t . این تقسیم بندی در XMEGA A Manualآ‌ هم به نوعی مشاهده میشه.
              هم در برگه های اطلاعاتی و هم در کتابخونه مربوطه دو رجیستر 16 بیتی به نتیجه ADC هر کانال اختصاص داده شده. من دقت کردم حتی آدرس این دو رجیستر متفاوت هست.
              آیا این دو رجیستر تفاوتی با هم دارن؟ چه موقع از این و چه موقع از اونیکی باید استفاده کرد؟

              کد:
              typedef struct ADC_CH_struct {
              ....
              	WORDREGISTER(RES); ///< Channel Result
              ...
              } ADC_CH_t;

              کد:
              typedef struct ADC_struct {
              ...
              	WORDREGISTER(CH0RES); ///< Channel 0 Result
              	WORDREGISTER(CH1RES); ///< Channel 1 Result
              	WORDREGISTER(CH2RES); ///< Channel 2 Result
              	WORDREGISTER(CH3RES); ///< Channel 3 Result
              ...
              } ADC_t;

              شماره این رجیستر ها هم به صورت زیر تعریف شده:

              کد:
              sfrb ADCA_CH0RESL = 0x0210		///< Channel 0 Result
              sfrb ADCA_CH0RESH = (0x0210+1)	///< Channel 0 Result
              sfrb ADCA_CH1RESL = 0x0212		///< Channel 1 Result
              sfrb ADCA_CH1RESH = (0x0212+1)	///< Channel 1 Result
              sfrb ADCA_CH2RESL = 0x0214		///< Channel 2 Result
              sfrb ADCA_CH2RESH = (0x0214+1)	///< Channel 2 Result
              sfrb ADCA_CH3RESL = 0x0216		///< Channel 3 Result
              sfrb ADCA_CH3RESH = (0x0216+1)	///< Channel 3 Result

              کد:
              sfrb ADCA_CH0_RESL = 0x0224		///< Channel Result
              sfrb ADCA_CH0_RESH = (0x0224+1)	///< Channel Result
              sfrb ADCA_CH1_RESL = 0x022C		///< Channel Result
              sfrb ADCA_CH1_RESH = (0x022C+1)	///< Channel Result
              sfrb ADCA_CH2_RESL = 0x0234		///< Channel Result
              sfrb ADCA_CH2_RESH = (0x0234+1)	///< Channel Result
              sfrb ADCA_CH3_RESL = 0x023C		///< Channel Result
              sfrb ADCA_CH3_RESH = (0x023C+1)	///< Channel Result

              با سپاس فراوان
              شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
              هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
              چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

              دیدگاه


                #8
                پاسخ : تاپیک سوالات درباره ADC

                من هردو گروه رجیستر را در عمل تست کرده ام و تفاوتی در عملکرد آن ندیده ام. اما بابت سوال شما و روشن شدن مطلب همین مسئله را از Atmel سوال کردم که پاسخ آن را در تاپیک مکاتبات منعکس خواهم کرد.
                اوژن: به معنای افکننده و شکست دهنده است
                دانایی، توانایی است-Knowledge is POWER
                برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                دیدگاه


                  #9
                  پاسخ : تاپیک سوالات درباره ADC

                  خسته نباشید
                  دوستان دوتا سوال
                  با استفاده از adc میشه ضبط صوت ساخت و سوال دوم برای ساخت یک فایل wave پروتکل یا doc خواص سراغ دارید
                  هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                  بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                  میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                  تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                  دیدگاه


                    #10
                    پاسخ : تاپیک سوالات درباره ADC

                    سلام. آره میشه من در حال حاضر دارم روی یه پروژه ای کار میکنم که یه بخشی از اون در واقع یه بلندگو دستی هست. یعنی از طریق میکروفن و ADC از صدا نمونه برداری میکنه بعد همون رو از طریق DAC پخش میکنه.
                    البته باید مراقب بایاس میکروفن و ولتاژ مرجع ADC و نویز باشی تا کیفیت صدا نسبتا خوب باشه.
                    برای ضبط کردن صدا هم اگر بخواهی 8 بیتی ذخیره کنی که تقریبا کاری نداره. فایل های wav یه هدر 43 بایتی دارن که میتونی اون رو کپی کنی (البته فایل ویوی که 8 بیتی باشه). چند بایت بعدی هم مربوط به تعداد بایتهای داده ها هست. بعد از اون هم خود داده های خام قرار میگیره بدون هیچ دستکاری ای.
                    موفق باشید
                    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                    دیدگاه


                      #11
                      پاسخ : تاپیک سوالات درباره ADC

                      واقعا جهش عزیمی هست xmega
                      در مگا 8 نهایت نمونه برداری در 15 kbps است که در پست ترین ورژن xmega یعنی سری d4 این به 200 kbps رسیده که باز در سری a تا 2 مگ وجود
                      حالا یک سوال برای نمونه برداری از صدا
                      رنج شنوایی ما بین 2 تا 20 کیلو هست حالا به عنوان نمونه همین 200 کیلو نمونه برداری در ثانیه یعنی 10 برابر کیفیت بالاتر(درسته ؟)
                      و باز سوال بعدی
                      فایل های wave هم یکسری استاندارد و رنج کیفیتی دارند چطور میشه اونارو استفاده کرد
                      در ضمن چرا با بیت بالاتر نتوان فایل ایجاد کرد
                      http://en.wikipedia.org/wiki/WAV
                      هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                      بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                      میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                      تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                      دیدگاه


                        #12
                        پاسخ : تاپیک سوالات درباره ADC

                        سلام.
                        بله کیفیت نمونه برداری خیلی بیشتر شده ولی دقت کنید که برای نمونه برداری دقیق هارمونیک های صدا(بین 20 تا 20 کیلو هرتز) باید حداقل با فرکانس 40 کیلو نمونه برداری انجام بشه که در xmegaآ‌ این مسئله به راحتی قابل انجام هست.
                        فایل های wav معمولی عملا هیچ دستکاری ای روی داده انجام نمی دن و محدوده های کیفیتی اونها یکی بستگی به فرکانس نمونه برداری داره مثلا 8 کیلو هرتز یا 16 کیلو هرتز و ... و دیگری بستگی به تعداد بیت هر نمونه داره. مثلا 8 بیت یا 16 بیت.

                        همونطور که در پست قبلی گفتم دقت 8 بیتی هیچ دستکاری ای نیاز نداره ولی برای دقت های بالا تر مثلا دقت 16 بیتی داده ها به صورت مثبت و منفی ذخیره میشن. یعنی رنج داده ها بین -2048 تا 2047 هست. اعداد منفی هم به صورت مکمل 2 ذخیره میشن.
                        برای پخش فایل های 16 بیتی باید به این مسئله دقت کنید و نمونه ها رو با عدد 2048 جمع کنید بعد به DAC بدید و اگر نه صدای واضحی نخواهید شنید.

                        در xmegaآ‌ دقت 12 بیتی مقدور هست که بستگی به نحوه نمونه برداری تمام نمونه ها میتونن فقط مثبت یا مثبت و منفی باشن. بنابراین نهایت دقت در xemga دوازده بیت است.
                        اولین پروژه ای که در آموزش xemga با IAR قرار دادم همین هست. یه نگاهی بندازید.
                        موفق باشید
                        شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                        هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                        چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                        دیدگاه


                          #13
                          پاسخ : تاپیک سوالات درباره ADC

                          در سورس جناب طراح برای دما سنج داخلی
                          کد:
                          #include "avr_compiler.h"
                          #include "adc_driver.h"
                          #include "KEY_7SEG.h"
                          
                          volatile unsigned int adc_sample[64];
                          volatile bool new_adc=false;
                          volatile unsigned char index=0;
                          
                          void main(void)
                          {
                           unsigned char DIGITS[6]={0,0,0,0,blank_code,blank_code};
                           unsigned long temp, temp85;
                           unsigned char i;
                           ADC_CalibrationValues_Load(&ADCA);
                           temp85=(SP_ReadCalibrationByte( PROD_SIGNATURES_START + TEMPSENSE1_offset )<<8)
                           + SP_ReadCalibrationByte( PROD_SIGNATURES_START + TEMPSENSE0_offset ) ;
                           ADC_ConvMode_and_Resolution_Config(&ADCA, ADC_ConvMode_Unsigned, ADC_RESOLUTION_12BIT_gc);
                           ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV512_gc);
                           ADC_Reference_Config(&ADCA, ADC_REFSEL_INT1V_gc);
                           ADC_TempReference_Enable(&ADCA);
                           ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH0,ADC_CH_INPUTMODE_INTERNAL_gc,ADC_DRIVER_CH_GAIN_NONE);
                           ADC_Ch_InputMux_Config(&ADCA.CH0, ADC_CH_MUXINT_TEMP_gc, 0);
                           ADC_Ch_Interrupts_Config(&ADCA.CH0, ADC_CH_INTMODE_COMPLETE_gc, ADC_CH_INTLVL_LO_gc);
                           PMIC.CTRL |= PMIC_LOLVLEX_bm;
                           ADC_Enable(&ADCA);
                           ADC_Wait_8MHz(&ADCA);
                           init_7seg();
                           __enable_interrupt();
                           show_7seg(DIGITS,0x00,0x00); 
                           ADC_Ch_Conversion_Start(&ADCA.CH0);
                          
                           while(1)
                           { 
                           if(new_adc&&(index==0))
                           {
                            new_adc=false;
                            temp=0;
                            for(i=0;i<64;i++) temp+=adc_sample[i]; // 64 Samples average
                            temp>>=6;   
                            temp=((3580U*(temp-200U))/(temp85-200U));
                            if(temp<2730U)
                            {
                            temp=2730U-temp;
                            DIGITS[4]= minus_code;
                            }
                            else
                            {
                            temp-=2730U;
                            DIGITS[4]= blank_code;
                            }
                            for (i=0;i<4;i++)
                            { 
                            DIGITS[i]=temp%10;
                            temp/=10;
                            }  
                            show_7seg(DIGITS,0x02,0x00); 
                           }  
                           } 
                          }
                          
                          ISR(ADCA_CH0_vect)
                          {
                           adc_sample[index]=ADC_ResultCh_GetWord(&ADCA.CH0);
                           new_adc=true;
                           ADC_Ch_Conversion_Start(&ADCA.CH0);
                           if(++index==64)index=0;
                          }
                          تابع SP_ReadCalibrationByte را کامپایل نمی کند وخطای زیر رو میده
                          کد:
                          Error[e46]: Undefined external "SP_ReadCalibrationByte(uint8_t)" referred in adc_driver ( D:\iar\gps\Debug\Obj\adc_driver.r90 )
                          داخل خود adc_driver نوشته شده این تابع برای GCC است برای استفاده در IAR فایل adc_driver_asm.S90 رو ضمیمه کنید
                          کسی میدونه این فایل کجاست
                          و سوال دوم اینه که مقدار های PROD_SIGNATURES_START و TEMPSENSE1_offset کجا مقدار دهی شده
                          هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                          بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                          میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                          تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                          دیدگاه


                            #14
                            پاسخ : تاپیک سوالات درباره ADC

                            داخل خود adc_driver نوشته شده این تابع برای GCC است برای استفاده در IAR فایل adc_driver_asm.S90 رو ضمیمه کنید
                            کسی میدونه این فایل کجاست
                            با سلام
                            این فایل رو که به صورت اسمبلی برای iar هستش تو نمونهه کدی که اقای کی نژاد برای سنسور دمای داخلی گذاشتن می تونین پیدا کنین
                            دکتر شريعتي:

                            زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                            دیدگاه


                              #15
                              پاسخ : تاپیک سوالات درباره ADC

                              لینک اگه لطف کنی
                              هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                              بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                              میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                              تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                              دیدگاه

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