اطلاعیه

Collapse
No announcement yet.

برنامه ولتمتر با atmega64

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

    برنامه ولتمتر با atmega64

    سلام من میخوام برنامه ولتمتر رو با مگا64 بنویسم، ولی کار نمیکنه، میشه کسی راهنمایی کنه چه رجیسترهایی باید تنظیم بشن و چجوری بنویسم برنامشو
    ممنون میشم

    #2
    پاسخ : برنامه ولتمتر با atmega64

    آخه حداقل بگید AC یا DC
    کاش حداقل شما یه کار کوچیک از این پروژه رو انجام میدادید بعد این تاپیک رو میزدید
    تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
    علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!

    دیدگاه


      #3
      پاسخ : برنامه ولتمتر با atmega64

      من این برنامه رو نوشتم، dc, ولی تنظیماتم درست نیست، چون روی lcd عدد 0 نشون میده

      دلیل: ادغام دو پست برای جلوگیری از اسپم

      ADMUX=ADC_VREF_TYPE
      ADCSRA=0X84
      اینها تنظیمات رجیسترها هستند، میخوام با 5 ولت خارجی کار کنه ،

      دیدگاه


        #4
        پاسخ : برنامه ولتمتر با atmega64

        لطفا اگه مقدور هست ، برنامه رو قرار بدین تا با دوستان بررسی کنیم و مشکل حل بشه
        تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
        علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!

        دیدگاه


          #5
          پاسخ : برنامه ولتمتر با atmega64

          ولتاژ رفرنس adc رو هم پایه aref انتخاب کردم، یعنی، REFS1,REFS0 رو 0 و 0 قرار دادم.

          دلیل: ادغام دو پست برای جلوگیری از اسپم

          ولتاژ رفرنس adc رو هم پایه aref انتخاب کردم، یعنی، REFS1,REFS0 رو 0 و 0 قرار دادم.

          دیدگاه


            #6
            پاسخ : برنامه ولتمتر با atmega64

            #include <mega64a.h>

            #include <alcd.h>

            #include <stdlib.h>

            #include <stdio.h>

            #include <delay.h>

            // Declare your global variables here

            char buff[32];

            float T;

            int AD;

            // Voltage Reference: AREF pin

            #define ADC_VREF_TYPE ((0<<REFS1) | (0<<REFS0) | (0<<ADLAR))

            // Read the AD conversion result

            unsigned int read_adc(unsigned char adc_input)

            {

            ADMUX=adc_input | ADC_VREF_TYPE;

            // Delay needed for the stabilization of the ADC input voltage

            delay_us(10);

            // Start the AD conversion

            ADCSRA|=(1<<ADSC);

            // Wait for the AD conversion to complete

            while ((ADCSRA & (1<<ADIF))==0);

            ADCSRA|=(1<<ADIF);

            return ADCW;

            }

            void main(void)

            {

            // Port A initialization

            // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

            DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);

            // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

            PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

            DDRD=255;

            PORTD=255;

            // ADC initialization

            // ADC Clock frequency: 1000.000 kHz

            // ADC Voltage Reference: Int., cap. on AREF

            ADMUX=ADC_VREF_TYPE;

            ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1

            <<ADPS2) | (0<<ADPS1) | (<<ADPS0);

            SFIOR=(0<<ACME);

            lcd_init(16);

            while(1)

            }

            T=read_adc(3);

            T=(T*5)/1024;

            lcd_gotoxy(0,0);ftoa(T,2,buff);lcd_puts(buff);

            delay_ms(100);

            lcd_clear();

            }

            }
            جدیدترین ویرایش توسط samaneh.r; ۲۳:۰۴ ۱۳۹۵/۰۸/۲۸.

            دیدگاه


              #7
              پاسخ : برنامه ولتمتر با atmega64

              من برنامه ولتمتر رو برای مگا32 نوشتم و کار میکنه، اما نمیدونم چرا تو ما64 درست کار نمیکنه، البته آی سی من atmega64a هست. کار کردن با مگا 64 قلق خاصی داره؟ گیج شدم
              خواهشا کسی میدونه کمک کنه، ممنون

              دیدگاه


                #8
                پاسخ : برنامه ولتمتر با atmega64

                شاید توی پروگرام کردن پروگرام تیک atmega103 بود نزدید . باید اون بزنید و پروگرام کنید

                دیدگاه


                  #9
                  ممنون از پاسختون، من با avr studio کار میکنم منظورتون تو قسمت فیوزبیتها، گزینه atmega103 compatibility mode هست؟ آخه تو پروتئوس هم جواب نمیده
                  این گزینه دقیقا برای چیه؟
                  مگه این فیوزبیت برای تبدیل مگا103 و مگا128 به همدیگه نیست؟
                  در ضمن من این بیت رو تیک نزدم، یعنی یکه و فعال نیست.

                  یعنی کسی نیست منو کمک کنه
                  لطفا اگه کسی اطلاعاتی داره راهنمایی کنه، بدجوری برای یه برنامه ساده گیر افتادم
                  جدیدترین ویرایش توسط اشکان غفارزاده; ۱۲:۰۰ ۱۳۹۵/۰۸/۳۰.

                  دیدگاه


                    #10
                    کار با adc میکرو atmega64

                    سلام دوستان کسی واحد adc اتمگا64 رو راه اندازی کرده؟
                    من یه برنامه خیلی ساده نوشتم که میاد عدد داخل adc رو روی ال سی دی نمایش میده، ولی نمیدونم چرا همش عدد 0 رو نشون میده، خواهشا اگه کسی از دوستان کار کردن راهنمایی بفرمایند... ممنونم

                    دیدگاه


                      #11
                      پاسخ : کار با adc میکرو atmega64

                      سلام
                      کدت رو بذار تا بررسی بشه...................!!
                      *** يا راهي خواهم يافت، يا راهي خواهم ساخت ... ***

                      دیدگاه


                        #12
                        پاسخ : کار با adc میکرو atmega64

                        یه بچه ها قبلا این مشکل داشت و بعد از اینکه من سخت افزار نگاه کردم دیدم که اومده از پورت A به عنوان ADC استفاده کرده اون هم به خاطر این بود که توی نام گزاری پورت A از دستور AD0.... AD7 استفاده کرده بود. اگه بار اولته با این میکرو کار میکنی ADC میکرو مگا64 پورت F هست
                        بقیه دستورات .... دقیقا مثل MEGA16-32 هست

                        دیدگاه


                          #13
                          پاسخ : کار با adc میکرو atmega64

                          اتصال تغذیه واحد adc فراموش نشود! avcc agnd

                          دیدگاه


                            #14
                            پاسخ : کار با adc میکرو atmega64

                            <include <mega64a.h#
                            <include <delay.h#
                            <include <stdlib.h#
                            <include <alcd.h#

                            ;[32]char buf

                            ;float T




                            define ADC_VREF_TYPE ((0<<REFS1) | (0<<REFS0) | (0<<ADLAR#



                            (unsigned int read_adc(unsigned char adc_input
                            }
                            ;ADMUX=adc_input | ADC_VREF_TYPE

                            ;(delay_us(10

                            ;(ADCSRA|=(1<<ADSC
                            ;(while ((ADCSRA & (1<<ADIF))==0

                            ;(ADCSRA|=(1<<ADIF

                            ;return ADCW
                            {



                            (void main(void
                            }

                            ;DDRD=255

                            ;PORTD=255


                            ADC initialization//


                            ADC Clock frequency: 1000.000 kHz//


                            ADC Voltage Reference: Int., cap. on AREF//



                            ;ADMUX=ADC_VREF_TYPE
                            (ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE
                            <<ADPS2) | (0<<ADPS1) | (<<ADPS0)
                            SFIOR=(0<<ACME);

                            ;(lcd_init(16

                            (while(1


                            }

                            ;(T=read_adc(3

                            ;(lcd_gotoxy(0,0);ftoa(T,2,buff);lcd_puts(buff

                            ;(delay_ms(100

                            ;()lcd_clear
                            {



                            {

                            دیدگاه


                              #15
                              پاسخ : کار با adc میکرو atmega64

                              اتصال تغذیه واحد adc فراموش نشود! avcc agnd + مدار ضد نویز

                              مدار aref رو درست بستی؟

                              دیدگاه

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