اطلاعیه

Collapse
No announcement yet.

مشکل با codevision

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

    مشکل با codevision

    با سلام
    من یک برنامه چشمک زن led هم با BASCOM و هم با Codevision نوشتم. بعد فایل hex را به برنامه progisp میدم و با اون میکروی atmega128 را پروگرم می کنم. مشکلی که دارم اینه که برنامه ای که با BASCOM نوشتم به خوبی کامپایل میشه و روی میکرو جواب میده ولی برنامه نوشته شده با codevision پروگرم میشه ولی روی میکرو جواب نمیده.
    احساس میکنم دستور delay اجرا نمیشه. مثلا اگر من اول پین B0 رو یک کنم، یک باقی میمونه واگر اول صفرش کنم، پین B0 صفر باقی میمونه.
    کد:
    #include <mega128.h>
    #include <delay.h>
    
    void main()
    {
    DDRB=0x01;
    while(1)
    {
    PORTB=0x01;
    delay_ms(1000);
    PORTB=0x00;
    delay_ms(1000);
    }
    }
    چندتا برنامه دیگر هم با codevision نوشتم ولی هیچ کدومشون جواب نمیدن. حتی با codevision wizard هم کار کردم ولی بازهم فایده نداشت. مثلا یک برنامه برای ارتباط usart با pc هم نوشتم ولی اصلا میکرو نه دیتا از pc میگرفت ونه ارسال میکرد.
    آیا برای کار با codevision کار خاصی باید کرد.
    ورژن codevision هم 2.05.3 هست.
    با تشکر

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

    نوشته اصلی توسط ashaebani2002
    با سلام
    من یک برنامه چشمک زن led هم با BASCOM و هم با Codevision نوشتم. بعد فایل hex را به برنامه progisp میدم و با اون میکروی atmega128 را پروگرم می کنم. مشکلی که دارم اینه که برنامه ای که با BASCOM نوشتم به خوبی کامپایل میشه و روی میکرو جواب میده ولی برنامه نوشته شده با codevision پروگرم میشه ولی روی میکرو جواب نمیده.
    احساس میکنم دستور delay اجرا نمیشه. مثلا اگر من اول پین B0 رو یک کنم، یک باقی میمونه واگر اول صفرش کنم، پین B0 صفر باقی میمونه.
    کد:
    #include <mega128.h>
    #include <delay.h>
    
    void main()
    {
    DDRB=0x01;
    while(1)
    {
    PORTB=0x01;
    delay_ms(1000);
    PORTB=0x00;
    delay_ms(1000);
    }
    }
    چندتا برنامه دیگر هم با codevision نوشتم ولی هیچ کدومشون جواب نمیدن. حتی با codevision wizard هم کار کردم ولی بازهم فایده نداشت.
    آیا برای کار با codevision کار خاصی باید کرد.
    ورژن codevision هم 2.05.3 هست.
    با تشکر

    سلام
    من زیاد کدویژن بلد نیستم
    ولی فکر میکنم دستور اجرا میشه
    اما 1000 میلی ثانیه با توجه به فرکانس میکرو طول میکشه
    امتحان کردی که 1000 رو کمتر کنی ببینی چی میشه؟
    آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

    116 کتابخانه مورد نیاز برای Altium Designer

    از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

    دیدگاه


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

      بله. فرکانس میکرو داخلی روی 8mhz هستش.
      برای زمان های بیشتر و کمتر هم امتحان کردم ولی نشد

      دیدگاه


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

        برنامتون ظاهری مشکلی نداره. شاید کدویژن شما مشکل کرک داره. یه نسخه دیگرو امتحان کنید. (چون با بسکام هم امتحان کردین و جواب گرفتین)

        دیدگاه


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

          سلام
          با این اوصافی که شما میگید احتمالا مشکل از برنامه cv هست
          ببینید فایل هگز شما حجمی داره یا نه ؟؟؟؟
          شاید فایل هگز اشتباهی تولید میشه

          دیدگاه


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

            نوشته اصلی توسط ashaebani2002
            بله. فرکانس میکرو داخلی روی 8mhz هستش.
            برای زمان های بیشتر و کمتر هم امتحان کردم ولی نشد
            آیا از این جا هم فرکانس رو تنظیم کردید:
            Tools ==> Configure
            ?
            اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

            دیدگاه


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

              نوشته اصلی توسط ☺بابابرقی☺
              آیا از این جا هم فرکانس رو تنظیم کردید:
              Tools ==> Configure
              ?
              بله از اینجا هم تنظیم کردم. البته داخل برنامه هم یکبار define xtal 8000000 را نوشتم یکبار هم بدون آن.

              نوشته اصلی توسط amirna3r
              برنامتون ظاهری مشکلی نداره. شاید کدویژن شما مشکل کرک داره. یه نسخه دیگرو امتحان کنید. (چون با بسکام هم امتحان کردین و جواب گرفتین)
              یک نسخه دیگر هم نصب کردم ولی باز هم نشد. مطمئنم یک جای کارو دارم اشتباه میرم!
              آیا به غیر از تنظیم نوع میکرو و فرکانس و نوشتن برنامه باید کاری دیگری انجام داد؟؟

              دیدگاه


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

                نه دیگه کاره خاصی نیست که انجام بدین. فقط اخرش که برنامه اماده بود باید shift+F9 بگیرین که برنامه کامپایل بشه و کد hex اون تولید بشه.
                پروگرمرتون چی هست؟

                دیدگاه


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

                  سلام

                  اگر اشتباه نکنم رجیسترatmega128 با بقیه متفاوت بنابراین موقع پروگ کردن باید گزینه ای را فعال کنید تا درست پروگ بشه

                  دیدگاه


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

                    نوشته اصلی توسط soltanfarid
                    سلام

                    اگر اشتباه نکنم رجیسترatmega128 با بقیه متفاوت بنابراین موقع پروگ کردن باید گزینه ای را فعال کنید تا درست پروگ بشه
                    USBasp. البته cv این پروگرمر را پشتیبانی نمیکنه و مجبورم از progisp استفاده کنم. البته hex تولید شده توسط BASCOM را هم با همین برنامه میریزم داخل میکرو.

                    دیدگاه


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

                      نوشته اصلی توسط ashaebani2002
                      USBasp. البته cv این پروگرمر را پشتیبانی نمیکنه و مجبورم از progisp استفاده کنم. البته hex تولید شده توسط BASCOM را هم با همین برنامه میریزم داخل میکرو.
                      مشکل اینه که شما می گید:
                      مثلا اگر من اول پین B0 رو یک کنم، یک باقی میمونه واگر اول صفرش کنم، پین B0 صفر باقی میمونه.
                      پس یه احتمال اینه که تاخیزها خیلی کوتاه اعمال بشن، بنابراین به نظرم اول از کارکرد میکرو مطمئن بشید.
                      مثلا delay رو بیشتر کنید و بگید با تاخیر 20ms یک سری پین ها به ترتیب صفر و یک بشن و نتیجه رو ببینید تا بهتر بشه نظر داد.
                      اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

                      دیدگاه


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

                        مشکل من با تابع ()delay_us حل شد. در manual کدویژن برای تابع ()void delay_ms جمله زیر را نوشته هست.
                        This function automatically resets the watchdog timer every 1ms by generating the wdr instruction.
                        در atmega128 یک Extended Fuse Byte وجود دارد که یکی از فیوزهاش مربوط به watch dog میباشد. (WDTON)
                        به نظر شما برای استفاده از delay_ms چکار باید بکنم. تابع delay_us حداکثر زمان 65 میلی ثانیه تولید میکند.

                        دیدگاه

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