اطلاعیه

Collapse
No announcement yet.

تغییر برنامه سنسور lm35 ؟

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

    تغییر برنامه سنسور lm35 ؟

    با سلام چطور میشه نحوه خواندن مقدار وتبدیل به adc از کد زیر که wizard تولید می کند استفاده نکرد ؟
    // Read the AD conversion result
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input|ADC_VREF_TYPE;
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCH;
    }
    یعنی برای هر برنامه adc باید کد بالا را نوشت ؟ چه کد یا کدهایی را می توان جایگزین نمود ؟

    #2
    پاسخ : تغییر برنامه سنسور lm35 ؟

    هیچی بهش کاری نداشته باش و تابع خودت رو بنویس ولی چرا باید این کار رو بکنید؟ در حالی که کاملا استاندارده؟

    دیدگاه


      #3
      پاسخ : تغییر برنامه سنسور lm35 ؟

      چطور میشه بدون این کد برنامه با ای دی سی نوشت ؟

      دیدگاه


        #4
        پاسخ : تغییر برنامه سنسور lm35 ؟

        نوشته اصلی توسط KINDA
        چطور میشه بدون این کد برنامه با ای دی سی نوشت ؟
        با ADC نوشت؟ یعنی چی؟ درست توضیح بده ببینیم چی میگی؟ شما هر کاری می خوای بکنی نهایتا همین تابع میشه.

        دیدگاه


          #5
          پاسخ : تغییر برنامه سنسور lm35 ؟

          فدات شم پسر گلم این روشی که من نوشتم بهش میگن روش polling حالا اگر بخواهیم به روش وقفه دما رو از lm35 بخونیم باید چکار کنیم ؟!!

          دیدگاه


            #6
            پاسخ : تغییر برنامه سنسور lm35 ؟

            نوشته اصلی توسط KINDA
            فدات شم پسر گلم این روشی که من نوشتم بهش میگن روش polling حالا اگر بخواهیم به روش وقفه دما رو از lm35 بخونیم باید چکار کنیم ؟!!
            دوستان این که این همه دعوا نداره !
            برادر گرامی شما یه نگاهی به دیتاشیت میکرو و یا کتاب مرجع بکن !
            نیازی هم نیست از کدویزارد استفاده کنی.
            در وقفه ها هم وقفه ای به نام وقفه ADC وجود داره.
            * هر گاه خدا بخواهد بنده اي را خوار كند، دانش را از او دور سازد.
            * سخن بگوييد تا شناخته شويد، زيرا كه انسان در زير زبان خود پنهان است.
            *بدترين دوست،آ‌ کسی است که براي او به رنج و زحمت افتي.
            حضرت علی(ع)
            آموزش AVR به ساده ترین زبان ممکن : Noise.Blog.IR

            دیدگاه


              #7
              پاسخ : تغییر برنامه سنسور lm35 ؟

              نوشته اصلی توسط احسان نوری
              دوستان این که این همه دعوا نداره !
              برادر گرامی شما یه نگاهی به دیتاشیت میکرو و یا کتاب مرجع بکن !
              نیازی هم نیست از کدویزارد استفاده کنی.
              در وقفه ها هم وقفه ای به نام وقفه ADC وجود داره.
              من فکر میکنم استارتر باید یه سری پیش مطالعه داشته باشه تا این سوالات براش بوجود نیاد. الان بعد از چند پست تازه میگه چی کار می خواد بکنه.
              علاوه بر این من فکر میکنم استارتر همه چیز کدویژن رو بلد نیست.

              دیدگاه


                #8
                پاسخ : تغییر برنامه سنسور lm35 ؟

                استارتر منظورتون من هستم ؟! عزیزان، من برنامه به روش وقفه نوشتم اما نمیدونم چرا جواب نمیده در ضمن هم وقفه رو بلدم وهم کدویزاردو و....... شاید شما با برخی مفاهیم برنامه نویسی و ریز آشنایی نداشته باشید ! به هر حال از همه دوستان عذر میخوام و از اونهایی واقعا avr بلد هستن جواب بدن مرسی.
                اینم برنامه اما نمیدونم چرا جواب نمیده !
                #include <mega16.h>
                #include <stdio.h>
                #include <delay.h>

                #asm
                .equ __lcd_port=0x12 ;PORTD
                #endasm
                #include <lcd.h>

                #define ADC_VREF_TYPE 0xE0

                char lcd_buff[10];

                // ADC interrupt service routine
                interrupt [ADC_INT] void adc_isr(void)
                {

                unsigned char adc_data;
                adc_data=ADCH;
                sprintf(lcd_buff,"Temp=%5.1f C",adc_data);
                lcd_clear();
                lcd_gotoxy(0,0);
                lcd_puts(lcd_buff);

                }

                // Declare your global variables here

                void main(void)
                {

                // ADC initialization
                // ADC Clock frequency: 15.625 kHz
                // ADC Voltage Reference: AREF pin
                // ADC Auto Trigger Source: None
                // Only the 8 most significant bits of
                // the AD conversion result are used
                ADMUX=ADC_VREF_TYPE & 0xff;
                ADCSRA=0x8E;

                lcd_init(16);
                // Global enable interrupts

                #asm("sei&quot

                while (1);


                }

                دیدگاه


                  #9
                  پاسخ : تغییر برنامه سنسور lm35 ؟

                  :angry:

                  دیدگاه


                    #10
                    پاسخ : تغییر برنامه سنسور lm35 ؟

                    ببینید وقفه adc بعد از هر انجام تبدیل adc صورت میگیره حالا فرض که کلاک میکرو 8 مگ باشه و ما دقت 10 بیتی بخوایمو کلاک adc روی 125کیلو هرتز باشه این وقفه هر 110 میکرو ثانیه اتفاق میوفته!!!
                    در ضمن شما دستور اجرای نمونه برداریو صادر نکردین
                    موفق باشید
                    .The best question deserves a better answer
                    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                    «پناه»می برم «به خدا»
                    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                    دیدگاه


                      #11
                      پاسخ : تغییر برنامه سنسور lm35 ؟

                      میشه بگید منظورتون از دستور اجرای نمونه برداری چیه که به برنامه اضافش کنم ؟

                      دیدگاه


                        #12
                        پاسخ : تغییر برنامه سنسور lm35 ؟

                        ADCSRA|=(1<<ADSC)
                        .The best question deserves a better answer
                        =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                        «پناه»می برم «به خدا»
                        از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                        محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                        دیدگاه


                          #13
                          پاسخ : تغییر برنامه سنسور lm35 ؟

                          این کد رو تو برنامه قرار دادم جواب نداد ! تازه error هم میده !!!

                          دیدگاه


                            #14
                            پاسخ : تغییر برنامه سنسور lm35 ؟

                            کد درسته و مشکلی نداره
                            کدو کجا قرار دادین؟
                            .The best question deserves a better answer
                            =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                            «پناه»می برم «به خدا»
                            از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                            محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                            دیدگاه


                              #15
                              پاسخ : تغییر برنامه سنسور lm35 ؟

                              اینجا :
                              #include <mega16.h>
                              #include <stdio.h>
                              #include <delay.h>

                              #asm
                              .equ __lcd_port=0x12 ;PORTD
                              #endasm
                              #include <lcd.h>

                              #define ADC_VREF_TYPE 0xE0

                              char lcd_buff[10];

                              // ADC interrupt service routine
                              interrupt [ADC_INT] void adc_isr(void)
                              {

                              unsigned char adc_data;
                              adc_data=ADCH;
                              sprintf(lcd_buff,"Temp=%5.1f C",adc_data);
                              lcd_clear();
                              lcd_gotoxy(0,0);
                              lcd_puts(lcd_buff);

                              }

                              // Declare your global variables here

                              void main(void)
                              {

                              // ADC initialization
                              // ADC Clock frequency: 15.625 kHz
                              // ADC Voltage Reference: AREF pin
                              // ADC Auto Trigger Source: None
                              // Only the 8 most significant bits of
                              // the AD conversion result are used
                              ADMUX=ADC_VREF_TYPE & 0xff;
                              ADCSRA=0x8E;
                              ADCSRA|=(1<<ADSC)
                              lcd_init(16);
                              // Global enable interrupts

                              #asm("sei&quot

                              while (1);


                              }

                              دیدگاه

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