the need for speed
george miyagi
Posts: 48
hi
i am controlling 6 daisy-chained max7219s, via an external application, written in Processing. The thing is, the data coming in is comnig in really slowly. Would appreciate it if anyone had any ideas as to why?
Could it be because i'm sending 2 wait strings (the "*"'s)? But without them it doesn't seem to work.
also, i have tried sending other data than binary to the BS, but can't seem to get it to work....
here's the code:
and here's a snipped from processing:
Post Edited (george miyagi) : 7/24/2005 4:47:48 PM GMT
i am controlling 6 daisy-chained max7219s, via an external application, written in Processing. The thing is, the data coming in is comnig in really slowly. Would appreciate it if anyone had any ideas as to why?
Could it be because i'm sending 2 wait strings (the "*"'s)? But without them it doesn't seem to work.
also, i have tried sending other data than binary to the BS, but can't seem to get it to work....
here's the code:
progPin CON 16 ' The programming PIN ledCmd VAR BYTE serStr VAR BYTE(10) Clock CON 0 ' shift clock to MAX7219 DPin CON 1 ' shift data to MAX7219 Load CON 2 ' '======Constants========================== Decode CON $09 ' bcd decode Intensity CON $0A ' brightness Scan CON $0B ' scan (column) limit ShutDn CON $0C ' shutdown (1 = on) Test CON $0F ' display test mode Yes CON 1 No CON 0 '==========Variables========================= index VAR NIB ' loop counter idxOdd VAR index.BIT0 ' is index odd? (1 = yes) d7219 VAR BYTE ' data for MAX7219 char VAR BYTE ' character ee address col VAR NIB ' column value row VAR NIB ' row value a VAR WORD ' ee pointer b VAR BYTE ' Baud CON 16468 Baud CON 84 ' Baud CON 32 '=====EEPROM Data============================= '=========Initialization====================================== '++++++This is edited code++++ '++++ LOOKUP index,[noparse][[/noparse]Scan,7,Intensity,7,ShutDn,1],d7219 +++++ '=============================================================== LOW Load Initialize: DIRL = %111 ' clock, data and load pins FOR index = 0 TO 5 LOOKUP index,[noparse][[/noparse]Scan,7,Intensity,7,ShutDn,1],d7219 SHIFTOUT Dpin,Clock,MSBFIRST,[noparse][[/noparse]d7219] IF idxOdd = No THEN NoLoad PULSOUT Load,3 ' load parameter NoLoad: NEXT '==========Clear buffers======================================== '=============================================================== 'DATA Main: get_Data: FOR col = 1 TO 8 SERIN progPin, Baud, [noparse][[/noparse]WAIT ("*"), BIN serStr(0), BIN serStr(1), BIN serStr(2), BIN serStr(3), BIN serStr(4), BIN serStr(5)] ' wait for Comm FOR b=0 TO 5 SHIFTOUT Dpin,Clock,MSBFIRST,[noparse][[/noparse]col, serStr(b)] NEXT PULSOUT Load,3 SEROUT progPin, Baud, ' SEND the serial DATA NEXT GOTO Main '================================================================
and here's a snipped from processing:
for (row=0;row<8;row++){ print (row); for (matrix=5;matrix>-1;matrix--){ delay(40); output = (picData[noparse][[/noparse]matrix][noparse][[/noparse]row]); myPort.write("*"); myPort.write(output); myPort.write("*"); } } }
Post Edited (george miyagi) : 7/24/2005 4:47:48 PM GMT
Comments
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"SX-Video·Module" Now available from Parallax for only $28.95
http://www.parallax.com/detail.asp?product_id=30012
Product web site: www.sxvm.com
"One experiment is worth a thousand theories"
·
++++++++
Ammendment:
Hold, that i got it to work without the extra "*" but am still somewhat lacking in speed? how about shifting 16 bits at a time through the serial?
Post Edited (george miyagi) : 7/25/2005 6:03:44 AM GMT