Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by Gareeeesh

  1. I had to switch to the F5438A because of the RAM issue and was able to calibrate the clock at 20MHz - although there was some flickering, it suited the project brief well enough. Thanks for your replies guys!
  2. @Roadrunner & Tripwire - Thanks for all your help guys!. Mission accomplished! Here's another terrible video of my results!
  3. I'm using the H/W UART on the MSP430F5438 board which can do greater than 9600 baud, with a USB-to-Serial converter cable connected to an RS-232 shifter board. The UART RX at 115200 baud is working because previous to this, I created a program in which I could control each pixel with buttons on my keyboard through HyperTerminal, . Also, my code is weird? Right, I see. It is essentially the same code. I'll compare the results with the previous and see if it makes a difference. As usual Roadrunner - the most helpful dude ever!
  4. Okay, thanks for clearing that up. I had a look through the ASCII character table and there are some extended characters such as ? (ASCII value 189) which could maybe be used? Using the command line is only for testing purposes to see if the program was mapping the RX'd bytes to the correct RGB component of the correct pixel. So for now if I am using the command line I'll only put one character in the x="?" so that only one byte is transmitted. I wanted to be able to send a whole byte array using that program from here, that is why I wanted to use the gimp (.c) source file to use as a byte
  5. No, I only just noticed it there. That's it fixed now
  6. @tripwire: Excellent! That makes a lot more sense. Thanks again matey!
  7. Sorry everyone for posting several of the same post. My connection froze and i clicked refresh a bunch of times. I didn't realise I'd posted anything until I went back to the General section of the forum and saw them. That's it fixed now, so just ignore this.
  8. Hello! I know I've been posting loads of problems which you have all been very helpful with and I appreciate it. I'm at the last stage in my project where I have to send an image as a byte array (values from 0-255) via serial communication, use H/W UART to receive bytes and map them onto my RGB LED display to create the image. I've configured the UART at 115200 BAUD, clock at 18MHz, I'm using the UCA0 ISR routine to map the received bytes into a 3D array "image[8][8][3]" where the 1st, 2nd, and 3rd terms are row, column, RGB component, respectively. I am seeing results on the display whe
  9. @@tripwire Does this mean that the green component would be at [ ( 7+ ( 2 * gimp_image_width )) *2] ? and the blue at [ ( 7+ ( 2 * gimp_image_width )) *1]
  10. @roadrunner84: I just decided to leave the h/w SPI for the shift register because the shiftOut function works absolutely fine as it is. I didnt realise how difficult it would be to map the G2553 code over to the F5438A device! That's me got my previous code working now though. I looked back at this to try and continue with the final part of the project and I'm still not quite sure about hwo to extract the R,G and B values from the long string. Say I wanted the data for pixel(7,2). Then the equation above would be: [ (7 + (2 * 16) ) * 3 ] = 117? But how would you find the RGB values from
  11. @@roadrunner84, I thought I was on the right track. Anyways, I made the adjustments that you suggested but to no avail. For some reason the correct columns are lighting up, as well as random columns popping up but at different brightness levels. I'm thinking this could be because of a timing issue? I might just revert back to the shiftOut function that I've been using, since its so easy to do. void SPI_shift(u_short data) /* If you're intending to write 16 bits of information, go for a short instead of a long */ { u_char low_byte, high_byte; /* let's declare the variables to store the
  12. @@roadrunner84, that's me got the MSP430F5438 board! It has a ridiculous number of pins compared to the G2553. Anyways, as usual I'm running into problems It'll probably be a trivial task for you. I thought since I now have enough pins to use H/W SPI for the shift register (drives the columns), i'd try and give it a go. But I'm not sure I'm doing it right. Since the TXBuffer is only 8-bits in length, would I need to split the desired output "data" into two, like upper byte and lower byte? Something like this: // In main hsv2rgb(......); SPI_shift(0x8001); // so the first and last colum
  13. Yeah that was the initial plan, but I've just been informed that I may get my hands on the F5438 board which has 16kB of RAM which would solve all of my problems. Could've done with that about a year ago... :-P Thanks for your help though cde!
  14. That does sound pretty complicated :? ..... I'm not sure I'm well-versed enough in MSP430 C programming to be able to attempt something like that. I just wanted to check if something that would be possible . The "splitting the display into two" idea might be a good shout, again I'll try my best to make something work :-P Thanks again, you the man!
  15. @@roadrunner84 - I've not managed to find time to fix my code yet, but I was just thinking there: "I've got another Launchpad, with another G2553 device. Could I somehow utilise the RAM on that device as well?" Cos that would be excellent!
  16. For now I'll just try the 8*8 image. If I can get that to work I'll be happy. I'll let you know how I get on. :-P
  17. I mean I could maybe use an array like: image[16][16] but first the received RGB bytes could be converted to HSV? This would take much longer for the processor to perform however. The array could either be unsigned short or u_char (limit max value to 180 then 180*2-1).
  18. I always try and do everything all at once when in fact I should break it down into smaller pieces like you've suggested. Later on tonight I'll create a 8*8 image or even a 4*4 and try and see if that'll work. When I was testing my most recent code the display was all lit in green, but it obviously wasn't working properly because some pixels then flashed red etc. To be honest I'm to be completed this project by the end of the month where the initial spec was to display images sent via serial, so I'd compromise with a reduction in resolution as long as i could still display an image being t
  19. Hi Roadrunner, for this code I am using TLC5940's to drive PWM to the rows and 74HC595s for the columns. I've just realised that the code I posted is missing this: for(; { while (!(IFG2 & UCA0RXIFG)); leds[rxRow] = colour[0]*10; // leds[rxRow+32] = colour[1]*16; // leds[rxRow+16] = colour[2]*16; // UPDATE; // this line updates the TLC (previously this was in the timer interrupt) shiftOut(columnArray[rxCol]); // this controls which column is lit. leds[rxRow] = 0; //r leds[rxRow+32] = 0; // g leds[rxRow+16] = 0; _bis_SR_
  20. Hi Tripwire, thank you so much for helping me out! What I gather from what you say about the syntax of this array, is that I cannot treat this like an ordinary array. Since the positioning of would be (2*16+7)*3 = 117? Also, I'm not really sure what you mean about the escape codes. How did you get from \255 to 173? Thanks!
  21. Hi everybody, Hopefully someone will be able to help. The aim of this project is to send an image from my laptop over a serial port to the MSP430G2553 where the data will be processed and then the image will be shown on my RGB LED display. At present I'm looking at methods of converting an image into an RGB array. I found that using GIMP, a file can be exported as a ".c" source code file which converts the image into an array. - Although the syntax is unlike any I have seen before. Anyways, i am using a program I found on the web to do the sending of the data over the serial po
  22. Thanks for the suggestions guys, but I solved it. I'm just gonna use unsigned chars with 180 being the max value, then (180*2)-1. The Hue values arent as accurate but it does the job. Thanks again!
  23. Hi people! Basically I'm writing a function to control a 16x16 RGB LED matrix with serial communication. The function I'm writing requires an array of size 16x16 ( hueBuffer[16][16] ) and of type 'short' since the max value of hue is 359. However, I keep getting an error: "program will not fit into available memory. run placement with alignment fails for section "DATA_GROUP" size 0x23d" but there is plenty of memory on the G2553. I need the values of hue to go up to 360 so i cant use unsigned chars. Anyone know of a solution to this problem? I'll post the code if you wa
  24. Hello everyone! I'm continuing my project of creating an RGB LED matrix capable of displaying live images being transmitted from a laptop via a serial cable to the MSP430G2553. At the moment, I'm coding four 8x8 Common Anode RGB LED matrices joined together to create a 16x16 display. Hardware I'm using: - 3 * TLC5940s (one for each colour) - 2 * 74HC595 shift registers (drives the columns/anodes) I'm using code provided by RobG from this link <http://forum.43oh.com/topic/2315-tlc5940-examples/> and this one <http://forum.43oh.com/topic/3328-rgb-to-hsv-conversion-with
  • Create New...