jamesW

Members
  • Content Count

    7
  • Joined

  • Last visited

  1. Hi @JColvin, I think I have the correct raster operation - ropScrPaint which 'ORs' the source and destination - as this works fine when both bitmaps are at the same bit depth. So, I think this is indeed expected behaviour. Thanks very much for looking in to it.
  2. Hi Jon, Thanks for the quick reply. Apologies, I may not have been clear; I want to keep the bitmap sizes the same throughout (e.g. 320x240). The issue is when I load two bitmaps to the display. To give you an idea of the application, I have a histogram which is continually updated and is stored as a 320x240 bitmap. I have another bitmap which is the background screen, also 320x240. I use BitBlt() to render the background to the display (ROP code ropSrcCopy), and use it again to overlay the histogram (using ROP code ropSrcPaint). If both bitmaps are mono, this works fine. If both are colour, this also works fine. However, if one is mono and the other is colour, the resulting image is corrupted. So I'm wondering if overlaying mono and colour bitmaps is possible, or does the bit depth of each have to be the same? Thanks.
  3. Oops -- "loaded to noe section" should've read "loaded to one section"
  4. Hi, I am working with the PMOD MTDS display on the Arduino platform. I'd like to ask about the operation of the bit block transfer function, BitBlt(), when combining colour and monochrome bitmaps. In the example code MtdsDemo1, function MtdsTest23(), there is an example of this which has some text rendered as colour loaded to noe section of the display and some monochrome-rendered text loaded to another section. I would like to have a colour bitmap and a mono bitmap overlaid (e.g. each bitmap is the full size of the display). I'm using the ROP code ropSrcPaint to 'OR' the mono bitmap content with the colour bitmap. This causes corruption in the resulting image, however. FYI, I can successfully merge two mono or two colour bitmaps in this way, but it doesn't work with one colour and one mono bitmap. The following lines of code just outline how I'm creating and loading the bitmaps, but are hopefully enough to explain what I'm trying to do: hdsColor = mtds.GetDs(); hbmpColor = mtds.CreateBitmap(240, 320, 16); mtds.SetDrawingSurface(hdsColor, hbmpColor); hdsMono = mtds.GetDs(); hbmpMono = mtds.CreateBitmap(240, 320, 1); mtds.SetDrawingSurface(hdsMono, hbmpMono); mtds.BitBlt(hdsDisp, 0, 0, 240, 320, hdsColor, 0, 0, ropSrcCopy); mtds.BitBlt(hdsDisp, 0, 0, 240, 320, hdsMono, 0, 0, ropSrcPaint); This approach causes corruption in the resulting image. If, however, I create the mono bitmap as 16 bit, it works fine (likewise, if I change the colour bitmap to 1 bit). Perhaps this is expected behaviour, or maybe I'm missing something? Thanks.
  5. Ah, yes - thanks. I should have paid more attention to the manual! Thank you for looking into this and providing the answer.
  6. Hi Jon, Thanks for the reply. See answers, below - 1) I have the display working with the FRDM-K64F microcontroller. All is functioning well and I have been able to implement everything I need, except changing the font size. 2) I have tried running MtdsDemo1 on an Arduino Uno (i.e. using the standard code in the Arduino IDE, downloaded from the Digilent website). Looking through this sketch, it looks like it only sets the font size to hfntMedium and does not attempt to render out any text using this font. I looked at the return value from mtds.GetFont(hds) after setting the font to hfntMedium and it correctly returns 0xC3300003 (which, according to MtdsDefs.h, is the correct value). So, the Set/GetFont calls work fine - it's only when you try to render with these fonts that an error occurs. I've attached a shortened version of MtdsDemo1, where I've modified test21 (there are only two tests in this version - 1 & 21). Basically, it renders out some text using hfntConsole, then sets the font to hfntMedium and then tries to render this. Doing so causes the display to reset, as described in the original post. MtdsDemo1_short.ino
  7. Hi, I'd like to use different font sizes on the MTDS display. MtdsDefs.h defines a number of font sizes, but none of these, other than hfntConsole, seem to work. Interestingly, two different errors occur when trying to render text using these fonts, depending on the font size selected. The fonts hfntMedium, hfntLarge & hfntXLarge cause the display to go into a re-sync state. I had a look through the MTDS libs and it's MtdsWaitUntilShieldDone(), called by mtds.cpp, which times out and throws an lSyncError. The fonts hfntXSmall & hfntSmall don't cause an error, but no text is rendered to the display.