اطلاعیه

Collapse
No announcement yet.

راهنمایی برای خطای AVRprog error entering programming mode

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

    راهنمایی برای خطای AVRprog error entering programming mode

    سلام.
    من برنامه ای که در زیر نوشتم رو وقتی میریزم روی میکرو ، میکرو از کار میفته و هنگام کار با پروگرامر پیغام زیر نمایش داده میشه
    AVRprog error entering programming mode
    و روی برد هم جواب نمیده....
    روی دوتا میکرویی که داشتم تست کردم و جفتشون همین مشکلو پیدا کرد.
    قبل از این که این برنامه رو بریزم برنامه های دیگه ریخته بودم و میکرو ها به خوبی کار می کردن.
    هیچ فیوز بیتی رو دستکاری نکردم و تیک program fuse bit رو هم برداشتم.
    پروگرامر Avr910 هست و روی ویندوز xp کار میکنم.

    برنامه برای اتصال تو تا 7 segment به میکرو هست که به پورت A و B وصل هستند و با دوتا کلید روی پایه های صفرم و یکم پورت C مقدارشون زیاد میشه..
    [code=c]#include <mega32.h>
    #include <delay.h>
    #define xtal 4000000
    char i,j;
    int k1,k2;
    unsigned char s1[10]={119,68,59,107,77,110,126,75,127,111};
    unsigned char s2[10]={119,68,59,107,77,110,126,75,127,111};
    void main (void){
    DDRA=0xFF;
    PORTA=0x00;
    DDRB=0xFF;
    PORTB=0x00;
    DDRC=0x00;
    PORTC=0xFF;
    while(1){
    k1=PINC.0 ;
    k2=PINC.1 ;
    delay_ms(200);
    if(k1==0){
    i++;
    PORTB=s1[i];
    }
    if(k2==0){
    j++;
    PORTA=s2[j];
    }
    if(i==9){
    i=0;
    j++;
    PORTB=s1[0];
    PORTA=s2[j];
    }
    if(j==9){
    j=0;
    PORTA=s2[0];
    }
    }
    }[/code]

    #2
    پاسخ : راهنمایی برای خطای AVRprog error entering programming mode

    اول از همه یه سوال: این عددا که تو s1 و s2 ریختی چیه؟

    برنامه ای که نوشتی به نظرم ایراد داره. چون که وقتی میکرو روشن میشه خیلی سریع این عددا میرن روی میکرو، و تو قبل از اینکه فرصت کنی کلید رو فشار بدی می بینی که رسیده به ته برنامه. بعد اینکه این شرط به نظرم هیچ وقت اجرا نمیشه:
    کد:
    if(j==9){
    j=0;
    PORTA=s2[0];
    }

    چون قبل از اینکه توی شرط به j==9 برسیم، بعد از صفر شدن i، مقدار j=10 میشه و این شرط هیچ وقت نمیرسه.

    در ضمن توی کدویژن نیازی نیست کریستال رو توی برنامه تعریف کنی. با همون codewizard مقدار دهی کن کافیه. اما بودنش هم ایرادی نداره.

    اما این اروری که میگی نباید به برنامه ربطی داشته باشه. ارور داره میگه نمیتونه وارد مد پروگرم بشه. باید یه بار دیگه پروگرمرت رو کنترل کنی.
    دانش فني تا به عمل تبديل نشده، ذره اي ارزش نداره. اما بعضي وقت ها بايد از دانش براي باز کردن مرزهاي جديدي در علم استفاده کرد، نه اينکه اونها رو صرفاً فقط به عمل تبديل کرد.

    دیدگاه


      #3
      پاسخ : راهنمایی برای خطای AVRprog error entering programming mode

      همون اعدادی که باید روی پورت خروجی ریخته بشن تا 7 segment عدد مورد نظر رو نشون بده.
      مثلا اگه 111 رو بریزی روی پورت خروجی ، اونوقت سون سگمنت عدد 9 رو نشون میده. ولی چون من عمدا جای بعضی پین هارو عوض کردم ، اعداد s1 , s2 با اعداد متعارف کمی فرق دارن.

      برنامه یکم ایراد داشت که بعدا درستشون کردم. مثل همون j==9 الته ایرادش این بود که وقتی j=9 میشه مستقیم میره به عدد صفر و 9 رو نشون نمیده. و همینطور s1 و s2 یکیشون زیادیه و با یکی هم میشه برنامه رونوشت.
      اینی که گزاشتم همون برنامه اولی هست که روی میکرو ها ریختم برای اینکه ببینم پایه هارو درست وصل کردم یا نه.
      من معمولا از codewizard استفاده نمیکنم و همه چیزو دستی انجام میدم واسه همین میدونم که فیوز بیت ها رو دست کاری نکردم.


      قبل از اینکه این برنامه رو بریزم روی میکرو ، یک برنامه دیگه که برای یدونه 7 سگمنت بود رو ریختم و جواب داد ( روی هر دو میکرو) اما وقتی این برنامه رو ریختم میکرو ها به بلایی که گفتم دچار شدن....

      -----------------------------------------------
      اینو هم بگم که میکروی دوم رو روی همون مداری که فقط یک سون سگمنت داشت ومطمئن بودم که مدارش ایرادی نداره امتحان کردم و مطمئنم که مشکل پیش اومده از اشتباه بستن مدار و سوزوندن میکرو ها نیست.

      اضافه شده در تاریخ :
      همین الان با یک آی سی نو امتحان کردم . فکر کنم پروگرامر خرابه

      دیدگاه

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