اطلاعیه

Collapse
No announcement yet.

مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

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

    مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

    با عرض و خسته نباشید خدمت دوستان عزیزم .

    دوستان من یه برنامه ای که با کدویژن نوشته شده رو روی میکرو ATMEGA16 ریختم ، بعد از اینکه برنامه با موفقیت ریخته شدم اومدم برنامه رو پاک کنم دیدم پروگرامر پیغام میده میکرو رو نمیشناسه :cry2: فکر کردم شاید میکروم خراب باشه ، برای اطمینان روی یدونه ATMEGA 16 دیگه هم همین برنامه رو ریختم و بعدش اومدم پاکش کنم دیدم پیغام خطا میده و میکرو رو نمیشناسه .

    من اصلا فیوز بیت ها رو دستکاری نکردم . فقط به محض ریختن برنامه این مشکل برام پیش میاد و واقعا نمیدونم مشکل از چیه که میکرو ها این بلا سرش میاد . حتی فرکانس 1MHZ هم به پایه XTAL1 میکروهام دادم ولی بازم درست نشدن . میشه راهنمایی کنید چکار کنم میکروهام درست بشه؟

    و علت این مشکل هم ممنون میشم بهم بگید چیه . قبلا که با بسکام کار میکردم همچین مشکلی نداشتم ولی از وقتی شروع کردم با C کار میکنم این دومین باره که همچین مشکلی برام پیش میاد :cry2:


    اینم برنامه ای که ریخته بودم :

    کد:
    /*********************************************
    This program was produced by the
    CodeWizardAVR V1.23.8c Professional
    Automatic Program Generator
    © Copyright 1998-2003 HP InfoTech s.r.l.
    http://www.hpinfotech.ro
    e-mail:office@hpinfotech.ro
    
    Project : MT8870
    Version : 1.0
    Date  : 2007/09/19
    Author : Vahid Eskandar
    Company : Vahid Eskandar
    Comments: 
    
    In yek barnameye azmayeshi ast, baraye daryafte code haye DTMF az MT8870.
    Momken ast in barname be dorosti amal nakonad.
    
    vahid.eskandar@gmail.com
    
    
    Chip type      : ATmega16
    Program type    : Application
    Clock frequency   : 8.000000 MHz
    Memory model    : Small
    External SRAM size : 0
    Data Stack size   : 256
    *********************************************/
    
    #include <mega16.h>
    
    // Alphanumeric LCD Module functions
    #asm
      .equ __lcd_port=0x18
    #endasm
    #include <lcd.h> 
    #include <delay.h>  
    
    #define soundp PORTA.5
    #define cd PORTA.4
    #define ringing PINA.6
    #define TLED PORTD.7
    
    int i;    
    
    // External Interrupt 0 service routine
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {    
    	i=0;    
    	lcd_gotoxy(6,1);
    	switch(PINA & 0x0F)
    	{    
    	case 10:
    		lcd_putchar('0');
    		break;   
    	case 11:
    		lcd_putchar('*'); 
    		TLED=1;
    		break;
    	case 12:
    		lcd_putchar('#'); 
    		TLED=0;
    		break;
    	case 13:
    		lcd_putchar('A');
    		break; 
    	case 14:
    		lcd_putchar('B');
    		break; 
    	case 15:
    		lcd_putchar('C');
    		break; 
    	case 0:
    		lcd_putchar('D');
    		break;
    	default:
    		lcd_putchar('0' + (PINA & 0x0F));  
    	}   
    } 
    
    void beep()
    {
    	int n;
    	
    	while(n<7000)
    	{      
    		soundp = !soundp;
    		delay_us(400);
    		n++;   
    	}
    }     
    
    void main(void)
    {
    // Declare your local variables here
    
    // Input/Output Ports initialization
    // Port A initialization
    // Func0=In Func1=In Func2=In Func3=In Func4=Out Func5=Out Func6=In Func7=In 
    // State0=T State1=T State2=T State3=T State4=0 State5=0 State6=T State7=T 
    PORTA=0x00;
    DDRA=0x30;
    
    // Port B initialization
    // Func0=In Func1=In Func2=In Func3=Out Func4=In Func5=In Func6=In Func7=In 
    // State0=T State1=T State2=T State3=1 State4=T State5=T State6=T State7=T 
    PORTB=0x08;
    DDRB=0x08;
    
    // Port C initialization
    // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In 
    // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T 
    PORTC=0x00;
    DDRC=0x00;
    
    // Port D initialization
    // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=Out
    // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=0
    PORTD=0x00;
    DDRD=0x80;
    
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=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
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=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: On
    // INT0 Mode: Rising Edge
    // INT1: Off
    // INT2: Off
    GICR|=0x40;
    MCUCR=0x03;
    MCUCSR=0x00;
    GIFR=0x40;
    
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;
    
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    // Analog Comparator Output: Off
    ACSR=0x80;
    SFIOR=0x00;
    
    // LCD module initialization
    lcd_init(16);
    
    // Global enable interrupts
    #asm("sei")
    
    lcd_putsf("MT8870 Project");
    delay_ms(1000);
    lcd_clear();
    lcd_putsf("Ready");
    
    while (1)
    {
    	if(ringing)
    	{    
    		lcd_clear();
    		lcd_putsf("Ringing...");
    		delay_ms(4000);  
    		i=0;
    		cd=1; 
    		beep();
    	}
    	if(cd==1)
    	{
    		lcd_clear();
    		lcd_putsf("Connected"); 
    		lcd_gotoxy(0,1);
    		lcd_putsf("DTMF: ");
    		while(i<10)
    		{
    			i++;
    			delay_ms(1000);
    		}   
    		cd=0;     
    		lcd_clear();
    		lcd_putsf("Ready");
    	}	
    };
    }
    
    // END OF PROGRAM

    #2
    پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

    شما توی برنامه تون دوتا WARNINIG دارید. به این دقت داشته باشید.. هرچند ممکنه ربط نداشته باشه...

    دیدگاه


      #3
      پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

      درسته دوست خوبم . شما حق دارید . منم حدسم همینه که شاید مشکلم از همین دو تا خطا باشه . آیا راهی برای برگردوندن میکروها هست؟؟؟؟

      دیدگاه


        #4
        پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

        نوشته اصلی توسط arash2005
        درسته دوست خوبم . شما حق دارید . منم حدسم همینه که شاید مشکلم از همین دو تا خطا باشه . آیا راهی برای برگردوندن میکروها هست؟؟؟؟
        من بسکام مینویسم و زیاد c کار نکردم ولی فکر کنم شما تو برنامه کریستال رو 8 مگا انتخاب کردید ولی گفتید که فیوز بیتها رو دست نزدید . خوب پیش فرض میکرو 1 مگا هستش فکر میکنم این مشکل ایجاد کرده . پروگرمرتون چی هست . پروگرمر من هاتل هست و تا حالا به این مشکل بر نخوردم چون خودش اتوماتیک همون اول یه پالس به کریستال میکرو میده.
        دعا پشتِ دعا براي آمدنت
        گناه پشــــــتِ گناه براي نيامــدنت
        دل درگــير ، مــيان اين دو انتخــــــــــــــــــــاب
        کــــــــــــــدام آخر ؟ آمـــدنـت يا نيامدنـــــــــــــــــــــــت

        دیدگاه


          #5
          پاسخ : مشکل از کار افتادن میکرو هام با ریختن &#1576

          نوشته اصلی توسط مرتضی ب
          من بسکام مینویسم و زیاد c کار نکردم ولی فکر کنم شما تو برنامه کریستال رو 8 مگا انتخاب کردید ولی گفتید که فیوز بیتها رو دست نزدید . خوب پیش فرض میکرو 1 مگا هستش فکر میکنم این مشکل ایجاد کرده . پروگرمرتون چی هست . پروگرمر من هاتل هست و تا حالا به این مشکل بر نخوردم چون خودش اتوماتیک همون اول یه پالس به کریستال میکرو میده.
          من بارها میکرو هام رو کلاکشون رو 8 مگا گذاشتم فیوزبیت ها رو هم دست نزدم و کار داده و بعدا مشکلی پیش نیومده. این مورد (تغییر فرکانس داخلی میکرو) ظاهرا ربطی نداره به فیوزبیت ها چون فقط فرکانس داخلی رو تغییر دادیم...

          دیدگاه


            #6
            پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

            ببین دوست عزیز ، نرم افزار تو AVR هیچوقت تاکید میکنم هیچ وقت نمیتونه باعث این مشکل بشه.
            مطمئنا شما فیوزبیتها رو پروگرم کردی.
            شاید Program All رو میزنی و تیک Program Fuse bits رو برنمیداری یا نمیدونم ، خلاصه فیوزبیتها رو پروگرم کردی.
            حتی Lock Bits هم نمیتونن باعث از کار افتادن میکرو بشن.
            شاید تو فیوزبیتها SPI رو غیر فعال کردی. در اینصورت فقط با پروگرمر موازی میتونی میکرو رو برگردونی.

            دیدگاه


              #7
              پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

              امیر آقا درست میگن ممکن هستش که تو پروگرم کردن با کدویژن ناشی گری کرده باشید .... با چی پروگرم میکنید؟؟ یه عکس از صفحه فیوزبیت ها بذارید

              دیدگاه


                #8
                پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

                راستی ، arash2005 عزیز
                من فراموش کردم یک نکته رو بگم لطف کنید و از این به بعد اگر حجم کد زیاده یا یه جا پلود کنید و لینکش رو قرار بدین یا از تگ code که تو پاسخ با علامت # مشخص شده استفاده کنید تا مرور صفحه برای همه دوستان راحتتر باشه.

                دیدگاه


                  #9
                  پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

                  نوشته اصلی توسط مرتضی ب
                  من بسکام مینویسم و زیاد c کار نکردم ولی فکر کنم شما تو برنامه کریستال رو 8 مگا انتخاب کردید ولی گفتید که فیوز بیتها رو دست نزدید . خوب پیش فرض میکرو 1 مگا هستش فکر میکنم این مشکل ایجاد کرده . پروگرمرتون چی هست . پروگرمر من هاتل هست و تا حالا به این مشکل بر نخوردم چون خودش اتوماتیک همون اول یه پالس به کریستال میکرو میده.
                  ممنونم آقا مرتضی . والا نمیدونم پروگرامرم چیه . دست سازه . ولی قبلا که با بسکام کار میکردم همچین مشکلاتی نداشتم باهاش . از وقتی با C کار میکنم این مشکل به وجود اومده . عکس نرم افزار پروگرامرو اینجا میذارم براتون .



                  پروگرامر خوب بخوام تهیه کنم چه مارکی رو توصیه میکنید؟؟؟

                  نوشته اصلی توسط امیر . م
                  ببین دوست عزیز ، نرم افزار تو AVR هیچوقت تاکید میکنم هیچ وقت نمیتونه باعث این مشکل بشه.
                  مطمئنا شما فیوزبیتها رو پروگرم کردی.
                  شاید Program All رو میزنی و تیک Program Fuse bits رو برنمیداری یا نمیدونم ، خلاصه فیوزبیتها رو پروگرم کردی.
                  حتی Lock Bits هم نمیتونن باعث از کار افتادن میکرو بشن.
                  شاید تو فیوزبیتها SPI رو غیر فعال کردی. در اینصورت فقط با پروگرمر موازی میتونی میکرو رو برگردونی.
                  ممنونم آقا امیر عزیز . فکر کنم مشکلم همین باشه . چون هر میکرووییی که داخلش برنامه میریزم فیوز بیت هام هم داخلش نوشته میشه . یعنی وقتی که دکمه فلش رو میزنم که برنامه بریزه توو فلش میکرو فیوز بیت ها هم به طور اتوماتیک ریخته میشن . ولی مقدار فیوز بیت هامو دست کار نکردم ، مقدار پیش فرضش هست .

                  تا زمانی که با بسکام برنامه مینوشتم این مشکلات رو نداشتم ، الان دو ماهه برنامه C رو شروع کردم و از وقتی برنامه هایی که داخلش از وقفه و تامیر کانتر های 0 و 1 و 2 استفاده میکنم این مشکل برام پیش اومده . آیا برای استفاده از تایمر کانتر ها بیاد تغییری توو فیوز بیت ها داد؟؟ یا باید همه رو غیر فعال کرد؟؟؟؟

                  همچینن اگه راهی برای مشکل میکروهام پیشنهاد کنید ممنون میشم . فرکانس 1 مگا هرتز رو دادم ولی درست نشد .

                  الان یه عکس از برنامم براتون میذارم :



                  نوشته اصلی توسط electronic_2222
                  امیر آقا درست میگن ممکن هستش که تو پروگرم کردن با کدویژن ناشی گری کرده باشید .... با چی پروگرم میکنید؟؟ یه عکس از صفحه فیوزبیت ها بذارید
                  در مورد ناشی بودن که صد در صد موافقم که ناشی هستم چون تازه شروع به کار با برنامه C کردم . با progisp پروگرام میکنم . عکسش هم بالا گذاشتم ولی اینجا هم میذارم:



                  نوشته اصلی توسط امیر . م
                  راستی ، arash2005 عزیز
                  من فراموش کردم یک نکته رو بگم لطف کنید و از این به بعد اگر حجم کد زیاده یا یه جا پلود کنید و لینکش رو قرار بدین یا از تگ code که تو پاسخ با علامت # مشخص شده استفاده کنید تا مرور صفحه برای همه دوستان راحتتر باشه.
                  چشم آقا امیر . حتما دقت میکنم .

                  دیدگاه


                    #10
                    پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

                    اگر فیوزبیتها رو دستکاری نکرده پروگرم کردی ، به احتمال خیلی زیاد رفته رو کریستال خارجی. یه کریستال مثلا 4 مگ یا 8 مگ یا یه چیزی تو این رنج بزار دو سر پایه های کریستال و دو تا خازن 12 پیکو یا 15 پیکو هم از همون دو سر بزن زمین. طبق دیتاشیت.
                    ایشالله مشکلت حل میشه.
                    در ضمن در مورد پروگرم ، اگر میخوای یه پروگرمر مطمئن و عالی بگیری برو سراغ TNM ، یکم گرون هست حول و حوش 200 هزار تومن اگز اشتباه نکنم ، اما عـــــــــــــــــــــــــــالیه ، من چندین ساله که دارم با TNM 100 کار میکنم و تا حالا هیچ مشکلی نداشتم.
                    اما اگر نمیتونی انقدر هزینه کنی پروگرمر هاتل هم بد نیست ، خودم باهاش یکم کار کردم. کلا خوبه. قیمتش هم فکر کنم حدود 40 تومن باشه.
                    مساله بعدی در مورد تایمر و کانتر و ... ، اینها هیچ کدوم ارتباطی با فیوزبیتها ندارند. یعنی برای کار با این بخشها نیازی به تغییر در فیوزبیتها نیست.

                    دیدگاه


                      #11
                      پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

                      طبق تصویری که گذاشتی مشکلت از اینه که تنظیمات نرم افزار پروگرمرت اشتباهه.
                      تیک program fuse و lock chip رو بردار
                      تیک verify signature رو هم بزار مشکلت حل میشه :agree:

                      دیدگاه


                        #12
                        پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

                        نوشته اصلی توسط امیر . م
                        اگر فیوزبیتها رو دستکاری نکرده پروگرم کردی ، به احتمال خیلی زیاد رفته رو کریستال خارجی. یه کریستال مثلا 4 مگ یا 8 مگ یا یه چیزی تو این رنج بزار دو سر پایه های کریستال و دو تا خازن 12 پیکو یا 15 پیکو هم از همون دو سر بزن زمین. طبق دیتاشیت.
                        ایشالله مشکلت حل میشه.
                        در ضمن در مورد پروگرم ، اگر میخوای یه پروگرمر مطمئن و عالی بگیری برو سراغ TNM ، یکم گرون هست حول و حوش 200 هزار تومن اگز اشتباه نکنم ، اما عـــــــــــــــــــــــــــالیه ، من چندین ساله که دارم با TNM 100 کار میکنم و تا حالا هیچ مشکلی نداشتم.
                        اما اگر نمیتونی انقدر هزینه کنی پروگرمر هاتل هم بد نیست ، خودم باهاش یکم کار کردم. کلا خوبه. قیمتش هم فکر کنم حدود 40 تومن باشه.
                        مساله بعدی در مورد تایمر و کانتر و ... ، اینها هیچ کدوم ارتباطی با فیوزبیتها ندارند. یعنی برای کار با این بخشها نیازی به تغییر در فیوزبیتها نیست.
                        ممنونم آقا امیر . ولی مشکلم همچنان پا بر جاست :cry2: :cry2: سه تا میکروی سالم دارم که هر سه تاشون به خاطر ریختن همین برنامه این بلا سرشون اومده .

                        کریستال 4 و 8 و 12 و 3.57 هم نصب کردم ولی درست نشد . نمیدونم چکار کنم دیگه . فرکانس 1 مگا هم از طریق یه میکرو دیگه بهش دادم ولی درست نشد .

                        دیدگاه


                          #13
                          پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

                          نوشته اصلی توسط FUBA
                          طبق تصویری که گذاشتی مشکلت از اینه که تنظیمات نرم افزار پروگرمرت اشتباهه.
                          تیک program fuse و lock chip رو بردار
                          تیک verify signature رو هم بزار مشکلت حل میشه :agree:
                          ممنونم دوست عزیز . تنظیمات رو همینطور که شما فرمودید درست کردم .

                          آیا راهی برای برگردوندن میکروهایی که زدم شهیدشون کردم هست؟ :sad: طبق گفته آقا امیر کریستال 4 و 8 و ... رو گذاشتم ولی برنگشت ، فرکانس 1 مگ هم براش فرستادم ولی بازم برنگشت .

                          دیدگاه


                            #14
                            پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

                            ببین تو بین دوست و اشنا کسی پروگزامر داره با اونا تست کن ببین میکروهات شاید سوخته باشن ( با اینکه احتمالش کمه) .
                            دعا پشتِ دعا براي آمدنت
                            گناه پشــــــتِ گناه براي نيامــدنت
                            دل درگــير ، مــيان اين دو انتخــــــــــــــــــــاب
                            کــــــــــــــدام آخر ؟ آمـــدنـت يا نيامدنـــــــــــــــــــــــت

                            دیدگاه


                              #15
                              پاسخ : مشکل از کار افتادن میکرو هام با ریختن برنامه C ( لطفا کمکم کنید )

                              نوشته اصلی توسط مرتضی ب
                              ببین تو بین دوست و اشنا کسی پروگزامر داره با اونا تست کن ببین میکروهات شاید سوخته باشن ( با اینکه احتمالش کمه) .
                              نسوخته آقا مرتضی . میکرو رو تووی مدار میذارم کار میکنه . فقط مشکلش اینه که پروگرامر دیگه نمیشناستش . به نظرتون پروگرامر هاتل بخرم مشکلم حل میشه؟؟؟؟

                              دیدگاه

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