2011-09-15 58 views
0

我正在開發一個Arduino的程序,它發送數據到一些移位寄存器來控制一個大點陣顯示。我需要滾動文本,這是我遇到問題的地方。比方說,顯示屏顯示「HI」。整個屏幕上的第一組數據將是「10001 11111」。這將代表第一階段點亮的列。如果我把它放在一起並添加一個空格,我會得到「10001011111」,我發現二進制中的數字可以通過除以2來移動一列。Arduino中的二進制移位寄存器操作

因此,例如「11111」/ 2 = 01111。下一個除法是00111,然後是00011和00001等。問題是我將數據傳遞給兩個單獨的移位寄存器,每個數字一個。所以首先我發送「11111」,然後我換入「10001」。滾動時,數據需要從一臺顯示器轉移到另一臺顯示器。下面是一個圖表,儘量讓更多的這種感覺: 對於

 H | I 
    10001 0 11111 
    01000 0 01111 
    00100 0 00111 
    00010 0 00011 
    00001 0 00001 
    00000 0 00000 

我需要什麼

  H | I 
     10001 0 11111 
     01000 1 01111 
     00100 0 10111 
     00010 0 01011 
     00001 0 00101 
     00000 1 00010 
     00000 0 10001 
     00000 0 01000 
     00000 0 00100 
     00000 0 00010 
     00000 0 00001 
     00000 0 00000 

我真的嘗試過的工作 「HI」

BAD我能想到的一切。解決辦法是什麼?

回答

0

如果你的生產線將適合存儲數據的空間,你不能只把整條生產線放在那裏並且改變它嗎?不是使用固定的中央分隔符空間,而是將您的消息編碼爲單個字母,而不是像您嘗試顯示的矩陣那樣編碼。

10001011111 

然後通過2

01000101111 
00100010111 

反覆鴻溝請在所有其他行同樣的事情,我敢打賭,第二人會10001000100和2個工程一樣的右移鴻溝。

0

將10001011111轉換到第二列。 將00000010001換成第一個。