NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2027 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 13 از 13

موضوع: خطای حافظه ی Sram برای Attiny13

  1. #1
    کاربر فعال mapmap آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    M
    نوشته ها
    158
    تشکر
    246
    تشکر شده 74 بار در 61 پست

    پیش فرض خطای حافظه ی Sram برای Attiny13

    سلام

    توی یه برنامه ساده برا میکروکنترلر Attiny13 وقتی Dim a As Byte رو اضافه میکنم خطا میده در صورتی که همون برنامه برا Atmega8 درست کار میکنه !!

    آیا حافظه Sram میکروکنترلر Attiy13 ظرفیت نداره؟

    مثلا":


    $regfile = "attiny13.dat"
    $crystal = 8000000
    Dim A As Byte
    Do
    Loop
    End

    روش حلش به چه شکل خواهد بود؟؟
    با تشکر

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    سلام

    توی Help بسکام دستور tiny$ رو جستجو کن. ضمن اینکه می تونی از تعریف متغیر بصورت اشاره گر هم استفاده کنی. جستجوی حالت overlay در Help بسکام!
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  4. کاربران : 4 تشکر کرده اند از شما morteza_rk برای ارسال این پست سودمند:


  5. #3
    کاربر فعال mapmap آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    M
    نوشته ها
    158
    تشکر
    246
    تشکر شده 74 بار در 61 پست

    پیش فرض

    آقا شرمنده میشه بیشتر توضیح بدین؟

  6. #4
    کاربر فعال mapmap آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    M
    نوشته ها
    158
    تشکر
    246
    تشکر شده 74 بار در 61 پست

    پیش فرض


  7. #5
    کاربر فعال mapmap آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    M
    نوشته ها
    158
    تشکر
    246
    تشکر شده 74 بار در 61 پست

    پیش فرض

    آقا کمک لطفا"

  8. #6
    کاربر فعال mapmap آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    M
    نوشته ها
    158
    تشکر
    246
    تشکر شده 74 بار در 61 پست

    پیش فرض

    با هزار مکافات تونستم مشکلهای قبلی رو حل کنم ( البته با راهنمایی Morteza-rk عزیز )
    حالا این مشکل رو دارم ، برنامه رو یه نگاه بندازین :
    $regfile = "attiny13.dat"
    $crystal = 8000000
    Config Adc = Single , Prescaler = Auto
    Dim A As Iram Word
    Config Portb.0 = Output
    Config Portb.1 = Output
    Config Portb.2 = Output
    Config Portb.3 = Output
    Config Portb.4 = Output
    Config Pinb.5 = Input
    Start Adc
    Do
    A = Getadc(0)
    If M = 1 Then
    Set Portb.2
    Loop
    End

    بسکام توی دستور شرطی IF M =1 .... خطا میگیره.چرا؟

    خواهشا" کمک کنید ....

    متشکرم

  9. #7
    همکار M3R آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    مسعود
    نوشته ها
    710
    تشکر
    426
    تشکر شده 649 بار در 304 پست

    پیش فرض

    سلام
    بسکام توی دستور شرطی IF M =1 .... خطا میگیره.چرا؟
    خوب معلومه که باید ارور بده !!
    شما اصلا متغییری به اسم m تو برنامه ندارید که اونجا برای متغییر m شرط گذاشتید!!

  10. کاربران : 2 تشکر کرده اند از شما M3R برای ارسال این پست سودمند:


  11. #8
    کاربر فعال mapmap آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    M
    نوشته ها
    158
    تشکر
    246
    تشکر شده 74 بار در 61 پست

    پیش فرض

    گذاشتم اما نمیدونم چطور اینجا جای A کلمه M رو گذاشتم.ببخشید

    برنامه به این شکله:

    $regfile = "attiny13.dat"
    $crystal = 8000000
    Config Adc = Single , Prescaler = Auto
    Dim A As Iram Byte
    Config Portb.0 = Output
    Config Portb.1 = Output
    Config Portb.2 = Output
    Config Portb.3 = Output
    Config Portb.4 = Output
    Config Pinb.5 = Input
    Start Adc
    Do
    A = Getadc(0)
    If A = 1000 Then
    Set Portb.2
    Loop
    End

  12. #9
    کاربر فعال mapmap آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    M
    نوشته ها
    158
    تشکر
    246
    تشکر شده 74 بار در 61 پست

    پیش فرض

    کشف کردم :

    به این شکل کار مکنه:
    $regfile = "attiny13.dat"
    $hwstack = 8
    $swstack = 16
    $framesize = 16
    '---------------------------------------------------------------
    Dim M As Word
    Dim A As Word
    '---------------------------------------------------------------
    Ledred Alias Portb.0
    Ledyellow Alias Pinb.1
    Ledgreen Alias Portb.2
    '---------------------------------------------------------------
    Config Adc = Single , Prescaler = Auto , Reference = Internal
    '---------------------------------------------------------------
    Set Ledyellow
    Waitms 100
    Set Ledgreen
    Reset Ledyellow
    Start Adc
    '---------------------------------------------------------------
    Do
    M = Getadc(0)
    If M > 1000 Then
    Gosub w
    Else
    Set Ledgreen
    Reset Ledyellow
    End If
    Loop
    End
    '---------------------------------------------------------------
    w:
    Do
    Set Ledred
    Waitms 25
    Reset Ledred
    Loop
    Return
    ویرایش توسط mapmap : 18-08-2013 در ساعت 18:47

  13. #10
    کاربر فعال mapmap آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    M
    نوشته ها
    158
    تشکر
    246
    تشکر شده 74 بار در 61 پست

    پیش فرض

    اما توی پروتئوس درست عمل نمیکنه ....
    آقا چطور باید برا attiny13 یه شرط بذارم که مثلا":
    اگه ADC بین 1000 تا 1200 بود برو به زیر برنامه ی 1
    اگه بیشتر بود برو به زیر برنامه 2 و 10 بار LED رو Toggle کن
    و اگه کمتر بود برو به زیر برنامه 3

    Gosub درست عمل نکرد ( البته توی پروتئوس )
    میشه از Case استفاده کنم اگه میشه یه مثال ساده لطفا"

    با تشکر

  14. تشکرها از این نوشته :


  15. #11
    همکار M3R آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    مسعود
    نوشته ها
    710
    تشکر
    426
    تشکر شده 649 بار در 304 پست

    پیش فرض

    سلام.
    ببینید برنامتون چن تا مشکل داره:
    1> پینهایی که به led متصل کردید به صورت خروجی تعریف نکردید و ledyellow به جای pinb.1 باید بنویسید portb.1 چون ریجستر pin برای خوندن از پایه کاربرد داره پس اول برنامه رو باید به صورت زیر اصلاح کنید:
    کد:
    Config Portb.0 = Output
    Config Portb.1 = Output
    Config Portb.2 = Output
    
    Ledred Alias Portb.0
    Ledyellow Alias Portb.1
    Ledgreen Alias Portb.2
    2> تو برچسب w شما ledred رو set کردید و بعد 25 میلی ثانیه reset و بدون هیچ تاخیری دوباره set کردید.این باعث میشه که led شما همیشه روشن دیده بشه پس باید به یکی از دو صورت زیر بنویسید (25 میلی ثانیه هم خیلی کمه )

    کد:
    Do
    Set Ledred
    Waitms 250
    Reset Ledred
    Waitms 250
    loop
    یا

    کد:
    Do
    Toggle Ledred
    Waitms 250
    Loop
    3>شما تو برچسب w یه حلقه بی نهایت do loop گذاشتید که اگه یک بار مقدار adc بزرگتر از 1000 شد و به این برچسب اومد تو حقله گیر میکنه هیچوقت به return نمیرسه!
    پس باید حلقه do loop رو بردارید و یا یه حلقه که پایان داشته باشه بزارید!

    نکته:
    اگه ADC بین 1000 تا 1200 بود
    دقت adc تو این نوع میکرو 10 بیت هست.یعنی حداکثر عددی که شما از خروجی adc میگیرید 1023 هست و برای اینکه یه شرط برای یه محدوده از اعداد بزارید ساده ترین راه اینه که به شکل زیر عمل کنید:
    کد:
    If A > 700 And A < 1023 Then
    .
    .
    .
    .
    end IF
    موفق باشی

  16. کاربران : 2 تشکر کرده اند از شما M3R برای ارسال این پست سودمند:


  17. #12
    کاربر فعال mapmap آواتار ها
    تاریخ عضویت
    Mar 2010
    نام
    M
    نوشته ها
    158
    تشکر
    246
    تشکر شده 74 بار در 61 پست

    پیش فرض

    M3r عزیز متشکرم کارم رو خیلی جلو انداختین ممنون

  18. #13
    عضو جدید
    تاریخ عضویت
    Aug 2011
    نوشته ها
    10
    تشکر
    0
    تشکر شده 3 بار در 3 پست

    پیش فرض حل خطا sram در attiny13

    کد:
    $regfile = "attiny13.dat"
    
    $crystal = 9600000
    $hwstack = 32
    $swstack = 8
    $framesize = 16
    به این شکل مشکل خطای رم sram در attiny13 حل میشه، فقط مجاز به تفییر مقدار سرعت هستید، تغییر بقیه مقادیر ممکنه باعث ایجاد خطا بشه، تست شده

  19. تشکرها از این نوشته :


موضوعات مشابه

  1. مشکل با attiny13
    توسط eric_s88 در انجمن AVR
    پاسخ: 2
    آخرين نوشته: 24-11-2012, 12:40
  2. برق اضطراري با attiny13
    توسط alitaroosheh در انجمن AVR
    پاسخ: 9
    آخرين نوشته: 02-08-2012, 18:48
  3. کم آوردن فضای sram
    توسط behnam6500 در انجمن AVR
    پاسخ: 12
    آخرين نوشته: 24-04-2012, 13:54
  4. سوال در مورد حافظه sram
    توسط mihman در انجمن AVR
    پاسخ: 13
    آخرين نوشته: 23-09-2011, 20:33
  5. ارتقاي sram در برد آموزشي آرم
    توسط ena در انجمن AT91 series (ATMEL)
    پاسخ: 8
    آخرين نوشته: 03-08-2010, 16:40

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •