اطلاعیه

Collapse
No announcement yet.

تابلو روان 16x32

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

    تابلو روان 16x32

    سلام من در برنامه م یه تاخیر میزارم که رو تابلو نوشته م دیده بشه و این تاخیر هیچ ربطی به دیگر قسمت برنامهم نداره ولی وقتی سطرم کامل رفرش شد یه تاخیر خیلی بزرگ ایجاد میشه که باعث میشه هم تابلو چشمک بزنه و هم نورش کم باشه
    این تاخیرو من جایی گذاشتم که روی هر سطر یه تاخیر 500 میلی ثانیه ایجاد بشه و روی محاسبات برنامه نباید تاثیری داشته باشه ولی داره طوری که برای اینکه دوباره سطرو از اول اسکن کنه چند ثانیه طول میکشه
    نمیدونم مشکل از کجاس ....یا کلا کامپایلر بسکام این مشکلو داره ؟
    اینم فلیمش تو فیلم تو ثانیه 7 اسکن تموم میشه و تا ثانیه ده ینی سه ثانیه طول می کشه که دوباره اسکن کنه تاخیر کم میکنم مشکل تا حدودی کم میشه ولی هم نور کمه و کمی چشمک میزنه که راضی کننده نیست تاخیر زیاد کردم به چشم مشکل دیده بشه http://s6.picofile.com/file/82000115...64705.mp4.html
    $regfile = "m8def.dat"
    $crystal = 1000000

    Config Portd = Output
    Config Portb = Output
    cp alias portd.0
    Sh_cp Alias Portd.1
    St_cp Alias Portd.2
    Dim Go_to_595 As Byte
    'Dim For_rotate As Byte
    Dim Frame_count As Word
    Dim Frame_noumber As Word
    Dim Find As Long
    Dim Look_up_idx As Word
    Dim Framee As Word
    Dim Ic_74hc595 As Byte
    Dim Idx As Byte
    Dim Go As Byte
    Dim Refresh As Byte
    Dim Delayy As Word
    Dim Find_delay As Word
    Dim I As Long
    I = &B11111111111111111111111111111111


    Const Image_width = 32
    Const Image_height = 16
    Const Image_frame_count = 1
    Const Byte_in_row = Image_height / 8
    Const Matrix_8x8_in_row = Image_width / 8
    Const Frame_size = Byte_in_row * Image_width
    Const Frame_in_to_595 = Image_frame_count * Frame_size
    Dim Buf As Byte

    Do
    'Find_delay
    '******************************************co unter frame's byet
    For Framee = 1 To Frame_in_to_595 Step Frame_size
    'For Refresh = 0 To 20
    Set Cp
    For Frame_count = 1 To Frame_size Step Matrix_8x8_in_row
    '*******************************************b ufering


    Set Sh_cp
    Reset Cp
    Reset Sh_cp


    Reset Portb.2
    For Look_up_idx = 1 To Matrix_8x8_in_row
    Find = Look_up_idx + Frame_count
    Find = Find + Framee
    Find = Find - 3
    Buf = Lookup(find , Image_code)
    Toggle Buf

    Shiftout Portb.0 , Portb.1 , Buf , 2
    Next Look_up_idx

    Set Portb.2
    Set St_cp
    Waitms 500 'inja ******+++***
    Reset St_cp
    '***zero row
    'For Ic_74hc595 = 1 To Matrix_8x8_in_row
    'Reset Portb.2

    'Shiftout Portb.0 , Portb.1 , I
    'Next Ic_74hc595
    'Set Portb.2

    Next Frame_count
    'Next Refresh
    Next Framee
    Loop
    Image_code:
    Data &H00 , &H00 , &H00 , &H00, ' 0004 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Data &h00,&h00,&h00,&h00, ' 0008 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Data &h7F,&hC0,&h00,&h00, ' 000C . # # # # # # # # # . . . . . . . . . . . . . . . . . . . . . .
    Data &h04,&h00,&h00,&h10, ' 0010 . . . . . # . . . . . . . . . . . . . . . . . . . . . # . . . .
    Data &h04,&h00,&h00,&h10, ' 0014 . . . . . # . . . . . . . . . . . . . . . . . . . . . # . . . .
    Data &h04,&h07,&h0F,&h3E, ' 0018 . . . . . # . . . . . . . # # # . . . . # # # # . . # # # # # .
    Data &h04,&h08,&h90,&h90, ' 001C . . . . . # . . . . . . # . . . # . . # . . . . # . . # . . . .
    Data &h04,&h10,&h50,&h10, ' 0020 . . . . . # . . . . . # . . . . . # . # . . . . . . . # . . . .
    Data &h04,&h1F,&hCC,&h10, ' 0024 . . . . . # . . . . . # # # # # # # . . # # . . . . . # . . . .
    Data &h04,&h10,&h03,&h10, ' 0028 . . . . . # . . . . . # . . . . . . . . . . # # . . . # . . . .
    Data &h04,&h10,&h00,&h90, ' 002C . . . . . # . . . . . # . . . . . . . . . . . . # . . # . . . .
    Data &h04,&h08,&h50,&h90, ' 0030 . . . . . # . . . . . . # . . . . # . # . . . . # . . # . . . .
    Data &h04,&h07,&h8F,&h0E, ' 0034 . . . . . # . . . . . . . # # # # . . . # # # # . . . . # # # .
    Data &h00,&h00,&h00,&h00, ' 0038 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Data &h00,&h00,&h00,&h00, ' 003C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Data &h00,&h00,&h00,&h00 ' 0040 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    #2
    پاسخ : مشکل در تاخیر برنامه

    سلام کسی جواب نداد
    یکی از حلقه های for رو کم کردم و بجاش یه محاسبه ریاضی ساده گذاشتم و مشکل حل شد ولی متوجه نشدم دلیل اون تاخیر بزرگ که هیچ ربطیم نداشت چی بود ؟ این فیلم تابلوم http://www.aparat.com/v/8k9CAکه بدلیل کمبود جا نتونستم تغذیه رو بدرستی وصل کنم و نور کمو زیاده
    اینم برنامه برای کسایی که می خوان انجام بدن برنامه جوری نوشته شده که فقط کافیه سطر و ستونو و تعداد فریم هارو وارد کنید و نیاز به محاسبات دیگه ای نداره
    برنامه رو زیپ نکردم برای اینکه کسایی که نام نویسی نکردن هم استفاده کنن
    $regfile = "m8def.dat"
    $crystal = 1000000

    Config Portd = Output
    Config Portb = Output
    cp alias portd.0
    Sh_cp Alias Portd.1
    St_cp Alias Portd.2
    Dim Go_to_595 As Byte

    Dim Frame_count As Word
    Dim Frame_noumber As Word
    Dim Find As Long
    Dim Look_up_idx As Word
    Dim Framee As Word
    Dim Ic_74hc595 As Byte
    Dim Idx As Byte
    Dim Go As Byte
    Dim Refresh As Byte
    Dim Delayy As Word
    Dim Find_delay As Word


    Const Image_width = 32
    Const Image_height = 16
    Const Image_frame_count = 6
    Const Byte_in_row = Image_height / 8  'tedad byte'hayy ke roye satr rikhte mishe
    Const Matrix_8x8_in_row = Image_width / 8 'tedad matrix'haye mojod dar satr
    Const Frame_size = Byte_in_row * Image_width 'andazeie har fram
    Const Frame_in_to_595 = Image_frame_count * Frame_size 'tedad byte'hayy ke be sorate seriall vared shift rejister;ha mishe
    Dim Buf As Byte

    Framee = 0

    Do
    For Refresh = 0 To 5 'braye inke har frame chand bar tekrar beshe , animation ba sorat monaseb harekat kone
    Set Cp 'yek pals be shift rejister bar roye satr midim
    For Frame_count = 1 To Frame_size Step Matrix_8x8_in_row 'halqe asli braye joda kardan 4 byte az image_code va frestadan be shift rejister'ha


    Reset St_cp
    Set Sh_cp 'yek pals be shift rejister baraye inke satr bady amade daryaft data bashe
    Reset Cp 'qaire faal mishan braye inke satr mored nazar paidar bashe
    Reset Sh_cp


    Reset Portb.2
    For Look_up_idx = 1 To Matrix_8x8_in_row 'dar in halqe byte ha besorate 4 ta 4 ta bardashte mishe va motaqaier buf rikhte mishe
    Find = Look_up_idx + Frame_count
    Find = Find + Framee
    Find = Find - 2 'aamal riazi braye peda kardan mahal doroste dataye morede nazar
    Buf = Lookup(find , Image_code)
    Toggle Buf 'chon az 74hc595 estefade mi****m va dar dot matrix'hay man sotoon'ha ba ,voltaje manfi vah andazi mishan bayad data ro barax konm

    Shiftout Portb.0 , Portb.1 , Buf , 2 'dataye mojod dar buf roy hc595 rikhte mishe va in halqe be tedade matrix_8x8_in_row ke 4 tas tekrar mishe
    Next Look_up_idx

    Set Portb.2 'khoroji hc595 haye sotoon'ha ro faal mi****m
    Set St_cp 'pals be payeye st_cp hc595 roie satr'ha
    Waitus 10

    Next Frame_count

    Next Refresh
    Framee = Framee + Frame_size 'vaqty tamae dataye frame aval roye tablo rikhte shod bayad be fram baydi brim
    If Framee = Frame_in_to_595 Then 'yek shart braye inke vaqty tamame byte'ha roe hc595 rikhte shod dobare az aval shoro beshe
    Framee = 0
    End If
    Loop
    Image_code: 'etelaate tesvir
    ' Frame 1
    ' Delay: 20

    Data &h00,&hF0,&h00,&h00,
    Data &h00,&hF8,&h00,&h00,
    Data &h0F,&hF8,&h00,&h00,
    Data &h0F,&hFC,&h00,&h00,
    Data &h07,&h8E,&h00,&h00,
    Data &hFC,&h07,&h00,&h00,
    Data &hEC,&h07,&hC0,&h00,
    Data &hF8,&h3F,&hFF,&h00,
    Data &h79,&hFE,&h3F,&hE0,
    Data &h38,&h00,&h00,&h18,
    Data &h0F,&h7C,&hC1,&hF7,
    Data &h03,&hFF,&hF9,&hE0,
    Data &h00,&hFE,&h1D,&hC0,
    Data &h00,&h00,&h03,&h70,
    Data &h00,&h00,&h18,&h70,
    Data &h00,&h00,&h1B,&hF0,

    '--------------------------------------------------------------
    ' Frame 2
    ' Delay: 20

    Data &h00,&h00,&h00,&h00,
    Data &h00,&h70,&h00,&h00,
    Data &h0F,&hF8,&h00,&h00,
    Data &h0F,&hEC,&h00,&h00,
    Data &h07,&h8E,&h00,&h00,
    Data &hFC,&h07,&h01,&h80,
    Data &hEC,&h07,&hC6,&hE0,
    Data &hF8,&h3F,&hFE,&hF0,
    Data &h7F,&hFE,&h01,&hFC,
    Data &h3D,&hF8,&h00,&h0F,
    Data &hDB,&h78,&h1C,&h67,
    Data &hDD,&h8F,&hFF,&hDE,
    Data &h6E,&hF8,&h1B,&hF8,
    Data &h3F,&hE0,&h00,&h00,
    Data &h00,&h00,&h00,&h00,
    Data &h00,&h00,&h00,&h00,

    '--------------------------------------------------------------
    ' Frame 3
    ' Delay: 20

    Data &h00,&h00,&h00,&h00,
    Data &h00,&h1C,&h00,&h00,
    Data &h06,&hF0,&h00,&h00,
    Data &h0F,&hFC,&h00,&h00,
    Data &h0C,&h0E,&h00,&h00,
    Data &h07,&h87,&h01,&h80,
    Data &hCC,&h03,&h86,&hE0,
    Data &hFC,&h0F,&hFE,&hE0,
    Data &h7C,&hFF,&h7D,&hF8,
    Data &h3F,&hFC,&h00,&hCE,
    Data &h0F,&hBC,&h0C,&h03,
    Data &h7E,&hF3,&hBE,&hFF,
    Data &h69,&h9F,&hFF,&h8C,
    Data &h36,&hF8,&h1F,&h00,
    Data &h0D,&hE0,&h00,&h00,
    Data &h00,&h00,&h00,&h00,

    '--------------------------------------------------------------
    ' Frame 4
    ' Delay: 20

    Data &h00,&h00,&h00,&h00,
    Data &h00,&h00,&h00,&h00,
    Data &h00,&h3E,&h00,&h00,
    Data &h07,&hF0,&h00,&h00,
    Data &h0F,&hFC,&h00,&h00,
    Data &h0C,&h0E,&h00,&hF0,
    Data &h07,&h87,&h03,&h60,
    Data &hCC,&h03,&h8E,&hC0,
    Data &hFC,&h0F,&hFD,&hC0,
    Data &h7C,&hFF,&h01,&hFC,
    Data &h3F,&hFC,&h00,&h07,
    Data &h00,&h7C,&h1B,&hE7,
    Data &h1C,&hF9,&hFF,&h7F,
    Data &h1B,&h07,&hFF,&h9C,
    Data &h0E,&hDF,&h80,&h00,
    Data &h03,&hB9,&h80,&h00,

    '--------------------------------------------------------------
    ' Frame 5
    ' Delay: 20

    Data &h00,&h00,&h00,&h00,
    Data &h00,&hD0,&h00,&h00,
    Data &h00,&hF8,&h00,&h00,
    Data &h0F,&hF8,&h00,&h00,
    Data &h0F,&hFC,&h00,&h00,
    Data &h07,&h8E,&h00,&h30,
    Data &hFE,&h07,&h00,&h70,
    Data &hEC,&h07,&hFF,&hF8,
    Data &hF8,&h3F,&h80,&h30,
    Data &h79,&hFE,&h01,&hE0,
    Data &h7F,&hF8,&h03,&hC0,
    Data &h00,&h39,&hEF,&h80,
    Data &h00,&h0F,&hFD,&hE0,
    Data &h00,&h0F,&hE0,&hE0,
    Data &h00,&hC3,&hC7,&h80,
    Data &h00,&hDF,&h80,&h00,

    '--------------------------------------------------------------
    ' Frame 6
    ' Delay: 20

    Data &h00,&h00,&h00,&h00,
    Data &h00,&h70,&h00,&h00,
    Data &h19,&hF8,&h00,&h00,
    Data &h1F,&hFC,&h00,&h00,
    Data &h0C,&h0E,&h00,&h00,
    Data &h07,&h87,&h00,&h00,
    Data &hCC,&h03,&h80,&h00,
    Data &hFC,&h0F,&hFE,&h00,
    Data &h78,&hFF,&h3F,&h80,
    Data &h7F,&hFC,&h00,&hF9,
    Data &h3F,&hFF,&h00,&hC0,
    Data &h03,&hE3,&hC3,&hFC,
    Data &h01,&hF8,&h1F,&h00,
    Data &h00,&h7E,&hFF,&h80,
    Data &h00,&h1F,&h9F,&h80,
    Data &h00,&h06,&h78,&h00
    اسم گذاری ها بخاطر اینکه پی در پی برنامه تغییر کرده شاید اشتباه باشن و خودتون درستش کنید
    از کسایی که کار کردن درخواست میکنم اگه این برنامه مشکلی داره و یا راهی برای بهتر شدنش دارن بگن
    یه سوال برای اینکه بخوام اطلاعات فریم هارو از رم بخونم باید چیکار کنم؟ فقط روال کارو بهم بگید خودم درستش میکنم ....برای رم ها میتونم از micro sd های کوچیک استفاده کنم ؟؟
    لطفا در این مورد هرچی می دونید کمکم کنید

    دیدگاه

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