اطلاعیه

Collapse
No announcement yet.

مشکل با atmega8

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

    مشکل با atmega8

    با سلام
    یه مشکلی با atmega8 دارم به این صورت که میخوام یه led رو روشن کنم ولی اصلا میکرو کار نمیکنه از کل پایه هاش خروجی 2 ولت میده,بعضی وقتها بعد پروگرم کار میکنه بیشتر اوقات هم کار نمیکنه :cry2:
    یکی گفته بود فیوز بیت میکرو رو بروی کریستال داخلی قرار بده..رو 8MHZ گذاشتم ولی باز همین ماجرا رو دارم
    پروزه دارم ولی هیچ کاری نمیتونم انجام بدم
    این یعنی چی؟
    اینم برنامه ساده! که پروگرمش کردم:
    $regfile = "m8def.dat"
    $crystal =8000000
    Config portd.2 = 1
    Do
    portd.2 =1
    waitms 500
    portd.2 =0
    waitms 500
    Loop
    End
    :angry:

    #2
    پاسخ : مشکل با atmega8

    اول مطمئن شو که تغذیت درسته(اون دو ولته خیلی ناجوره). بعد بایست تمام VCC و GND ها رو درست اتصال داده باشی
    و AVCC هم باید به VCC وصل بشه. از کارکرد کریستال مطمئن شو یا ترجیحا در ابتدا از اسیلاتور داخلی استفاده کن.
    در نهایت بایستی پورتها رو بصورت خروجی تعریف کنی تا بتونی باهاش ال ای دی روشن کنی.
    به تنظیمات فیوز بیتها هم موقع پروگرم کردن توجه کن

    دیدگاه


      #3
      پاسخ : مشکل با atmega8

      برنامت که مشکلی نداره

      به نظر من یه بار میکرو رو کامل erase کن و دوباره پروگرام کن یا از یه میکروی دیگه استفاده کن :biggrin:

      دیدگاه


        #4
        پاسخ : مشکل با atmega8

        فیوز بیت داخلی میکرو مربوط به کریستال داخلی رو فکر کنم درست پروگرم کرده باشم
        آیا برای 8000000 باید کریستال خروجی رو گذاشت؟
        هر چند الان دیگه نرم افزار دیگه میکرو رو نمیشناسه؟!
        فاینالی باید بدم بیرون تا برام بسازنش :wow:
        ممنون از راهنماییتون :nice:

        دیدگاه


          #5
          پاسخ : مشکل با atmega8

          نوشته اصلی توسط amard_1368
          فیوز بیت داخلی میکرو مربوط به کریستال داخلی رو فکر کنم درست پروگرم کرده باشم
          آیا برای 8000000 باید کریستال خروجی رو گذاشت؟
          هر چند الان دیگه نرم افزار دیگه میکرو رو نمیشناسه؟!
          فاینالی باید بدم بیرون تا برام بسازنش :wow:
          ممنون از راهنماییتون :nice:
          سلام
          اااااااا چرا میدی بیرون
          8M هم خارجی هست هم داخلی
          کریستال اشتباه تعریف کردی احتمالا خارجی گذاشتی :biggrin:
          بهش کریستال وصل کن اگه بازم کار نکرد به پایه XTAL1 خودت کلاک بده با هرچی که دوست داری (فقط فرکانسش بالا باشه تغریبا بین 1Mhtz تا 16Mhtz) بعد ببین کار میکنه ؟ :mrgreen:

          دیدگاه


            #6
            پاسخ : مشکل با atmega8

            حق با شماست
            بخام کار کنم هم نمیتونم چون پروگرام رمیکرو رو نمیشناسه نمیدونم مشکل از چیه
            تا حالا هم شبا شبیه سازی کار میکردم فکر میکردم به همین آسونیه :nerd:
            فقط میشنیدم فیوزبیت :surprised:اما تازه یه کم فهمیدم کارش چیه
            :nice:

            دیدگاه


              #7
              پاسخ : مشکل با atmega8

              دوستان کمکم کنید
              2تا Atmega8 خراب کردم
              الان سومی رو خریدم تا خودم پروژم رو بسازم
              الان LED روشن خاموش میشه ولی میخوام با LCD کار کنم نمیتونم
              رو سطر اول LCD فقط مربع های سیاه میاد
              کریستال داخلی رو روی 8مگاهرتز گذاشتم
              اینم برنامش
              ممنون میشم اگه راهنمایی بفرمایید

              $regfile = "M8def.dat"
              $crystal = 8000000
              Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = _
              Portc.7 , E = Portc.1 , Rs = Portc.2
              Config Lcd = 16 * 2
              Cls
              Do
              Cursor Off
              Lcd " IN THE NAME OF GOD "
              Waitms 200
              Loop
              End

              دیدگاه


                #8
                پاسخ : مشکل با atmega8

                بعد اینکه مطمئن شدی تو شبیه سازی برنامت کار میکنه، LCD رو به میکرو که وصل کردی، کنتراست LCD رو با پتانسیومتر اونقدر کم و زیاد کن (زیاد) تا برنامت روی LCD بیاد. به احتمال زیاد مشکلت حل بشه. تمام اتصالات رو هم یه بار چک کن.

                دیدگاه


                  #9
                  پاسخ : مشکل با atmega8

                  سلام دوست عزیز
                  تو مگا8 c.7 نداریم و c.6 هم به عنوان پایه ریست استفاده میشه. شما می تونید به جای این پورت از پورت b یا d استفاده کنید.
                  نوشته اصلی توسط amard_1368
                  دوستان کمکم کنید
                  2تا Atmega8 خراب کردم
                  الان سومی رو خریدم تا خودم پروژم رو بسازم
                  الان LED روشن خاموش میشه ولی میخوام با LCD کار کنم نمیتونم
                  رو سطر اول LCD فقط مربع های سیاه میاد
                  کریستال داخلی رو روی 8مگاهرتز گذاشتم
                  اینم برنامش
                  ممنون میشم اگه راهنمایی بفرمایید

                  $regfile = "M8def.dat"
                  $crystal = 8000000
                  Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = _
                  Portc.7 , E = Portc.1 , Rs = Portc.2

                  Config Lcd = 16 * 2
                  Cls
                  Do
                  Cursor Off
                  Lcd " IN THE NAME OF GOD "
                  Waitms 200
                  Loop
                  End
                  چرا ناراحتی پاتریک!
                  + امروز ی بچه دیدم سرچهارراه گل میفروخت
                  - از دیدنش ناراحت شدی؟
                  + نه
                  پس چی ناراحتت کرده
                  + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                  ------------------------------------------------------------------------------------------------------
                  تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                  ------------------------------------------------------------------------------------------------------
                  محصولات

                  دیدگاه


                    #10
                    پاسخ : مشکل با atmega8

                    با پتانسیومتر کم و زیا میکنم فایده ای نداره
                    رو این پایه ها هم قرارش میدم:
                    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = _
                    Portb.7 , E = Portb.1 , Rs = Portb.2
                    بعضی اوقات کار میکنه بعضی اوقات هم کار نمیکنه ~x(
                    میخوام پروژه رطوبت سنج بسازم ولی نمیتونم :angry:
                    یه برنامه با زبان C دارم میخوام به زبان Basic تبدیلش کنم از بس ناز استاد راهنمه رو کشیدم خسته شدم
                    اگه میشه یه نفر این برنامه رو پروگرم کنه فایل HEX و BIN روش رو واسم بزاره ممنون میشم :read:

                    /************************************************** ***
                    This program was produced by the
                    CodeWizardAVR V2.05.0 Advanced
                    Automatic Program Generator
                    © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
                    http://www.hpinfotech.com

                    Project :
                    Version :
                    Date : 10/20/2011
                    Author : www.Eca.ir *** www.Webkade.ir
                    Company :
                    Comments:


                    Chip type : ATmega8
                    Program type : Application
                    AVR Core Clock frequency: 1.000000 MHz
                    Memory model : Small
                    External RAM size : 0
                    Data Stack size : 256
                    ************************************************** ***/

                    #include <mega8.h>
                    #include <delay.h>
                    #include <stdio.h>

                    // Alphanumeric LCD Module functions
                    #include <alcd.h>

                    long int timer0_ov;
                    long int in_freq;
                    char buff[16],buff2[16];
                    int humidity;

                    // Timer 0 overflow interrupt service routine
                    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
                    {
                    timer0_ov++;

                    }

                    // Declare your global variables here

                    void main(void)
                    {
                    // Declare your local variables here

                    // Input/Output Ports initialization
                    // Port B 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
                    PORTB=0x00;
                    DDRB=0x00;

                    // 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=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: T0 pin Falling Edge
                    TCCR0=0x06;
                    TCNT0=0x00;

                    // Timer/Counter 1 initialization
                    // Clock source: System Clock
                    // Clock value: Timer1 Stopped
                    // Mode: Normal top=0xFFFF
                    // OC1A output: Discon.
                    // OC1B output: Discon.
                    // Noise Canceler: Off
                    // Input Capture on Falling Edge
                    // Timer1 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: Timer2 Stopped
                    // Mode: Normal top=0xFF
                    // 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=0x01;

                    // USART initialization
                    // USART disabled
                    UCSRB=0x00;

                    // Analog Comparator initialization
                    // Analog Comparator: Off
                    // Analog Comparator Input Capture by Timer/Counter 1: Off
                    ACSR=0x80;
                    SFIOR=0x00;

                    // ADC initialization
                    // ADC disabled
                    ADCSRA=0x00;

                    // SPI initialization
                    // SPI disabled
                    SPCR=0x00;

                    // TWI initialization
                    // TWI disabled
                    TWCR=0x00;

                    // Alphanumeric LCD initialization
                    // Connections specified in the
                    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
                    // RS - PORTB Bit 0
                    // RD - PORTB Bit 1
                    // EN - PORTB Bit 2
                    // D4 - PORTB Bit 4
                    // D5 - PORTB Bit 5
                    // D6 - PORTB Bit 6
                    // D7 - PORTB Bit 7
                    // Characters/line: 16
                    lcd_init(16);

                    // Global enable interrupts
                    #asm("sei&quot

                    while (1)
                    {

                    TCCR0=0x06;
                    #asm("sei&quot
                    delay_ms(50);
                    #asm("cli&quot
                    in_freq=20*(timer0_ov*256+TCNT0);
                    sprintf(buff,"Freq=%d",in_freq);
                    //delay_ms(250);
                    lcd_clear();
                    lcd_puts(buff);
                    TCCR0=0x00;
                    timer0_ov=0;
                    TCNT0=0;

                    humidity=(-0.075872)*(in_freq-7351);
                    lcd_gotoxy(0,1);
                    sprintf(buff2,"Humidity=%d",humidity);
                    lcd_puts(buff2);

                    }
                    }


                    دیدگاه


                      #11
                      پاسخ : مشکل با atmega8

                      با عرض سلام عید همگی مبارک :applause:
                      مشکلی که داشتم حل شد :nice:
                      اما یه مشکله دیگه که دارم اینه که یک دفعه اجرای برنامه متوقف میشه نوشته های روی LCD تغییر نمیکنه
                      یا هر از گاهی اعداد و حروف نامفهومی رو نشون میده
                      همین برنامه رو رو پروتیوس دقیق کار میکنه اما تو عمل مشکل دارم
                      باید پروژه رو ارایه بدم ولی وسط راه همچین مشکلاتی پیش بیاد.. :rolleyes:
                      کریستال داخلی رو هم رو 1MHZ میزارم
                      به نظرتون اشکال کار کجاست؟
                      ممنون میشم اگه وقت داشتین راهنماییم کنین.

                      دیدگاه


                        #12
                        پاسخ : مشکل با atmega8

                        please help me :cry2:

                        دیدگاه


                          #13
                          پاسخ : مشکل با atmega8

                          سلام دوستان ببخشید ی سوال داشتم ممنون میشم اگه جواب بدید
                          تو بسکام من میخوام & quot بنویسم زمان خواندن خطا میده و کلا بسکام از کار می افته باید ببندم ودوباره راه اندازی کنم مثلا دستور زیر
                          $regfile = "m8def.dat"

                          دیدگاه


                            #14
                            پاسخ : مشکل با atmega8

                            سلام وقت بخیر
                            من یک پروژه دارم که می خوام یک پالس از سنسور تشخیص ذرات گرد و غبار بگیرم و به atmega8 بدم که برام pwm پالس رو حساب کنه و از طریق uart به کامپیوتر ارسال کنه
                            میخواستم اگر کسی کد زبان سی این برنامه رو بلده لهم کمک کنه

                            دیدگاه

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