اطلاعیه

Collapse
No announcement yet.

مشکل پروگرام کردن میکرو

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

    مشکل پروگرام کردن میکرو

    با سلام.من یک مشکل درپروگرام کردن میکرو avr دارم.بعد از کامپایل کردن و build کردن وقتی میخوام برنامه رو load کنم رو میکرو این پیغام میاد
    flash contents mismatch at address :00 h و وقتی میکرو رو عوض می کنم.دفعه اول پروگرام میشه و این پیغام نمیاد.ولی برای بار دوم که میخوام پروگرام کنم دوباره این پیغام میاد.میشه منو راهنمایی کنین که چرا این پیغام ظاهر میشه؟ با تشکر
    برای کشف اقیانوسهای جدید باید شهامت ترک ساحل آرام خودرا داشت.جهان;جهان تغییراست نه تقدیر.

    #2
    پاسخ : مشکل پروگرام کردن میکرو

    فرکانس کریستال رو قبل از برنامه ریزی روی 1 مگ تنظیم کن

    درهربار برنامه ریزی بهتره فرکانس داخلی میکرو روی 1 مگ باشه (اگه بیشتر باشه معمولن خطا میده )


    اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

    دیدگاه


      #3
      پاسخ : مشکل پروگرام کردن میکرو

      با سلام.
      ضمن تشکر از راهنمایی شما. مورد دیگه ای منو با مشکل مواجه کرده. من با یه 7seg 4 چهار دیجیت کار میکنم.تا زمانیکه داده سه رقمی هست مشکلی مشاهده نمیشه ولی وقتی داده چهار رقمی می دم . عدد روی نشانگر کاملا با داده متفاوته .ودیجیت چهارم هم صفر نشون میده.
      برای کشف اقیانوسهای جدید باید شهامت ترک ساحل آرام خودرا داشت.جهان;جهان تغییراست نه تقدیر.

      دیدگاه


        #4
        پاسخ : مشکل پروگرام کردن میکرو

        سلام دادا.
        برنامت رو بذار ببینم چیکار کردی.
        تشکر لازم نیست!

        دیدگاه


          #5
          پاسخ : مشکل پروگرام کردن میکرو

          با سلام.برنامه ای که برای 7seg چهاردیجیت نوشتم اینه:
          #include <mega16.h>
          #include <delay.h>

          char f=1767 ;
          unsigned char s1,s2,s3,s4;
          flash unsigned char C7seg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F};
          void HEX_to_seg( unsigned char f){
          s4=C7seg[f%10];
          s3=C7seg[f/10%10];
          s2=C7seg[f/10/10%10];
          s1=C7seg[f/10/10/10%10];
          }
          void main(){
          DDRB.0=0;
          PORTB.0=1;
          DDRA=0XFF;
          DDRD=0XFF;

          while(1){

          HEX_to_seg(f);
          PORTA=0b00000001;
          PORTD=s4;
          delay_ms(5);

          PORTA=0b00000010;
          PORTD=s3;
          delay_ms(5);

          PORTA=0b00000100;
          PORTD=s2;
          delay_ms(5);

          PORTA=0b00001000;
          PORTD=s1;
          delay_ms(5 {


          {




          برای کشف اقیانوسهای جدید باید شهامت ترک ساحل آرام خودرا داشت.جهان;جهان تغییراست نه تقدیر.

          دیدگاه


            #6
            پاسخ : مشکل در نوشتن عدد چهاردیجیت برروی 7seg

            با سلام.برای نوشتن عدد چهارقمی روی 7seg چهاردیجیت مشکل دارم.تا زمانیکه در برنامه به متغیر عددسه رقمی میدم همون عددرو روی سون سگمنت نشون میده.ولی وقتی متغیررو چهاررقمی میدم روی سون سگمنت عددی متفاوت نشون داده میشه ودیجیت چهارم هم صفره.لطفا منو راهنمایی کنید.با تشکر.
            برنامه ای که برای 7seg چهاردیجیت نوشتم اینه:

            #include <mega16.h>
            #include<delay.h>

            char f=1767 ;
            unsigned char s1,s2,s3,s4;
            flash unsigned char C7seg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F};
            void HEX_to_seg( unsigned char f){
            s4=C7seg[f%10];
            s3=C7seg[f/10%10];
            s2=C7seg[f/10/10%10];
            s1=C7seg[f/10/10/10%10];
            }
            void main(){
            DDRB.0=0;
            PORTB.0=1;
            DDRA=0XFF;
            DDRD=0XFF;

            while(1){

            HEX_to_seg(f);
            PORTA=0b00000001;
            PORTD=s4;
            delay_ms(5);

            PORTA=0b00000010;
            PORTD=s3;
            delay_ms(5);

            PORTA=0b00000100;
            PORTD=s2;
            delay_ms(5);

            PORTA=0b00001000;
            PORTD=s1;
            delay_ms(5 {


            {
            برای کشف اقیانوسهای جدید باید شهامت ترک ساحل آرام خودرا داشت.جهان;جهان تغییراست نه تقدیر.

            دیدگاه


              #7
              پاسخ : مشکل پروگرام کردن میکرو

              سلام
              برای رقم هزارگان [s1=c7seg[f/10/10/10 باید باشد.

              دیدگاه


                #8
                پاسخ : مشکل پروگرام کردن میکرو

                برای رقم هزارگان همین کارو کردم..f/10/10/10 %10 --تو برنامه همینو نوشتم%10 مربوط به فرمت عدده که تو زبان c می نویسیم.
                برای کشف اقیانوسهای جدید باید شهامت ترک ساحل آرام خودرا داشت.جهان;جهان تغییراست نه تقدیر.

                دیدگاه


                  #9
                  پاسخ : مشکل پروگرام کردن میکرو

                  یک مشکل بسیار یزرگ اینه که متغیر char یک متغیر یک بایتی هست و در صورت بدون علامت بودن هم عددی بالاتر از 255 رو نشون نمیده!!
                  یعنی وقتی f رو مساوی مقدار عددی 1767 میذارین در حقیقت مقدار 231 توش میشینه. اگر با علامت باشه که میشه "منفی 25" که در هر صورت متفاوت از عدد دلخواه شما هست.
                  لطف کنین از نوع int استفاده کنین.
                  در تابع هم عدد رو میتونین از int یا unsigned int استفاده کنین.

                  دیدگاه

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