tag:blogger.com,1999:blog-4155387638169532413.post6830608502757725100..comments2023-10-21T05:06:14.642-07:00Comments on Homebrew Computers: 8051-based LED Matrix Scrolling Message Board.Marek Karczhttp://www.blogger.com/profile/03281397436610614441noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-4155387638169532413.post-53831153334692662592013-02-17T05:11:21.828-08:002013-02-17T05:11:21.828-08:00First, I want to thank you for taking to look at m...First, I want to thank you for taking to look at my code. Thank you so much.<br /><br />Here is my hardware connection https://plus.google.com/photos/105456482837653160273/albums/5844448576031239713/5845908132672694770<br /><br />I use row scanning method.<br /><br />I looked at your font code, and I guess you used column scanning methond.<br /><br />" however I think that you may want to try to refresh LED matrix in a reverse order:<br />for(row = 0; row < NUM_ROW; row++)<br />change to:<br />for(row = NUM_ROW-1; row >= 0; row--)"<br /><br />This cannot solve the problem. It is still the same.<br /><br />" dispBuffer[row]= ((dispBuffer_Backup[row] & 0x00FF) << time) >> 8; "<br /><br />What I want to do is just shifting one character code, which is hold<br />in dispBuffer_Backup from the very right of the display to very left of the display.<br />For example: The code is 1001_0001<br />What I want to see on the display is:<br /><br />1st: 0000_0000<br />2nd: 0000_0001<br />3rd: 0000_0010<br />4th: 0000_0100<br />5th: 0000_1001<br />. . .<br />9th: 1001_0001<br />10th: 0010_0010<br />11th: 0100_0100<br />16th: 1000_0000<br /><br />"Is dispBuffer directly interfaced to LED matrix?"<br /> Yes, it is.<br /> <br />"Is changing values in dispBuffer directly affecting which LED-s are on and which are off immediately?"<br /> The changed value in the dispBuffer does not effective immediately until next scanning cycle of that row.<br /><br />"What is the purpose of latching data and how is it affecting the presentation on the LED matrix? (I am talking about colCtl(LATCH, 1); colCtl(LATCH, 0);)"<br /> Because I use 74HC595 IC which is connected to columns (Katod) of the LED matrix,<br /> Latching data is done in order to update new data present on the output of the IC.<br /> The new data for the next row is shift to 595 IC at the begining of the timer interrupt. However, the output of the 595 IC still does not change until<br /> the latching data is done.<br /> Then I turn the previous row off in order to eleminate the "ghosting effect" when updating the data for the new row.<br /> After turn the row off, I latch new data and turn the next row on.<br /> <br />I try to scroll the message from the bottom up to the top or from top down to the bottom (this is easy than horizontal scrolling - for row scanning method),<br />the problem seems to be disappeared. I can see the pixel clearly even when the moving speed is fast enough. I am currently trying to figure out what is the difference<br />between these two method to find out the solution for my problem.<br /><br />Once again, I want to say thank you so much. :)<br />With the best regards!<br /><br />Binhttps://www.blogger.com/profile/15223579179267971422noreply@blogger.comtag:blogger.com,1999:blog-4155387638169532413.post-33904278376494197282013-02-16T08:54:03.511-08:002013-02-16T08:54:03.511-08:00Hello,
I looked at the pictures and code. I still ...Hello,<br />I looked at the pictures and code. I still can not say for sure what is the problem since I don't know the specifics of your hardware, however I think that you may want to try to refresh LED matrix in a reverse order:<br />for(row = 0; row < NUM_ROW; row++)<br />change to:<br />for(row = NUM_ROW-1; row >= 0; row--)<br />I also don't understand the purpose of shifting the data left by the number in variable 'time' and only then by 8 bits:<br />dispBuffer[row]= ((dispBuffer_Backup[row] & 0x00FF) << time) >> 8;<br />Shouldn't you shift only one bit left in one iteration?<br />I also would like to know more about hardware configuration and LED matrix. Is dispBuffer directly interfaced to LED matrix? Is changing values in dispBuffer directly affecting which LED-s are on and which are off immediately? If not, what is the purpose of using separate buffer dispBuffer_Backup? Also, what is the purpose of latching data and how is it affecting the presentation on the LED matrix? (I am talking about colCtl(LATCH, 1); colCtl(LATCH, 0);)<br />Sorry for so many questions instead of answers, however I am sure you understand that this is the part of the process of understanding the nature of the problem before we can fix it.<br />Let me know, perhaps you already figured it out?<br />ThanksMarek Karczhttps://www.blogger.com/profile/03281397436610614441noreply@blogger.comtag:blogger.com,1999:blog-4155387638169532413.post-38001180278652424952013-02-14T06:00:25.131-08:002013-02-14T06:00:25.131-08:00Sorry I fixed the link. https://plus.google.com/ph...Sorry I fixed the link. https://plus.google.com/photos/105456482837653160273/albums/5844448576031239713Binhttps://www.blogger.com/profile/15223579179267971422noreply@blogger.comtag:blogger.com,1999:blog-4155387638169532413.post-6590871586993505522013-02-14T05:59:08.025-08:002013-02-14T05:59:08.025-08:00This comment has been removed by the author.Binhttps://www.blogger.com/profile/15223579179267971422noreply@blogger.comtag:blogger.com,1999:blog-4155387638169532413.post-57132511609308428042013-02-13T19:39:44.303-08:002013-02-13T19:39:44.303-08:00I can not access that link: "We're sorry,...I can not access that link: "We're sorry, but you do not have access to this page".Marek Karczhttps://www.blogger.com/profile/03281397436610614441noreply@blogger.comtag:blogger.com,1999:blog-4155387638169532413.post-52002880967842880372013-02-13T06:51:22.748-08:002013-02-13T06:51:22.748-08:00Thank you so much for taking your time to help me....Thank you so much for taking your time to help me.<br /><br />My camera on my phone is so bad, thus I cannot capture clearly display when it scrolling.<br /><br />This is the picture that can describe my problem.<br />https://plus.google.com/photos/105456482837653160273/albums/5844448576031239713/5844448590431794018<br /><br />The letter on the left can be seen clearly when moving with low speed.<br />The letter on the right shows the problem when the message moving with faster speed.<br /><br />I use row scanning method to display the letter.Binhttps://www.blogger.com/profile/15223579179267971422noreply@blogger.comtag:blogger.com,1999:blog-4155387638169532413.post-7083302087919053502013-02-12T22:35:43.127-08:002013-02-12T22:35:43.127-08:00Hello,
Thanks for looking at my blog.
Pixel duplic...Hello,<br />Thanks for looking at my blog.<br />Pixel duplication is actually a side effect my algorithm experiences as well. The faster you scroll (or if you scroll too slow as well) the more you will see this. It happens because you can really scroll only one column at a time and then you have to sequentially go through entire matrix to shift each column to the left. So at these short times you have the same column displayed twice side by side. If you had a hardware LED matrix driver that allowed to shift data contents directly in the memory/register of the LED matrix controller, you would not see that effect. However, since you (and me) shift by software, there is a trade off. My LED matrix has its own controller, but the interface to it is serial. I can upload the data to the specific addresses in controller's memory. So, in each scroll loop step I upload the visible text part into the LED matrix and then in the next scrolling step I upload the message which is shifted one bit to the left in the internal software buffer. I am yet to analyze your code to see why do you have these extra side effects (jittery/blurry scrolling). Today I did not have enough time, sorry about that. It'd be great if you posted a link to the video clip that shows the problem. A (motion) picture is better than thousand words :-)Marek Karczhttps://www.blogger.com/profile/03281397436610614441noreply@blogger.comtag:blogger.com,1999:blog-4155387638169532413.post-89393220837177099342013-02-12T06:53:43.254-08:002013-02-12T06:53:43.254-08:00Hello Marek,
I am currently doing a scrolling LED...Hello Marek,<br /><br />I am currently doing a scrolling LED matrix as a hobby project.<br /><br />However, when the message scrolling, the pixel seems to be duplicated. Thus, the pixel cannot see clearly. When I decrease the scrolling speed. Pixel can be seen clearly, but the pixel seems to be jitters (not smooth).<br /><br />This is my algorithm that I used:<br />http://pastebin.com/W3107Dpd<br /><br />Could you take a look and give me some suggestion?<br />I read your source code, but it seems very difficult for me to follow. That is why I just want to ask you just the algorithm and then I implement it by myself.<br /><br />Thank you :)<br />Binhttps://www.blogger.com/profile/15223579179267971422noreply@blogger.com