Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. RA8875 has ridiculous registers

RA8875 has ridiculous registers

Scheduled Pinned Locked Moved The Weird and The Wonderful
15 Posts 7 Posters 51 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • honey the codewitchH honey the codewitch

    The RA8875 is a controller for an 800x480 display I am using in a project. You can rotate the screen via setting some registers. There is no option to rotate 90 degrees, only 270, leaving the X axis, and thus text and bitmaps mirrored. Whoever designed this should be forced to use it.

    Real programmers use butterflies

    Greg UtasG Offline
    Greg UtasG Offline
    Greg Utas
    wrote on last edited by
    #2

    Can't you just rotate it 3 times to get 90 degrees? Inelegant, but I must be missing something.

    Robust Services Core | Software Techniques for Lemmings | Articles
    The fox knows many things, but the hedgehog knows one big thing.

    <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
    <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

    honey the codewitchH 1 Reply Last reply
    0
    • Greg UtasG Greg Utas

      Can't you just rotate it 3 times to get 90 degrees? Inelegant, but I must be missing something.

      Robust Services Core | Software Techniques for Lemmings | Articles
      The fox knows many things, but the hedgehog knows one big thing.

      honey the codewitchH Online
      honey the codewitchH Online
      honey the codewitch
      wrote on last edited by
      #3

      It's not quite 5am and my spatial reasoning may not be entirely on point right now. Basically when I rotate it, it goes 90 degrees with the X axis inverted. You cannot rotate it 3 times nor flip the X axis because they only use 2 bits to store the rotation. These are the directions you can set the memory write order: LRTD RLTD TDLR DTLR (T=Top, R=Right, D=Down, L=Left)

      Real programmers use butterflies

      J 1 Reply Last reply
      0
      • honey the codewitchH honey the codewitch

        The RA8875 is a controller for an 800x480 display I am using in a project. You can rotate the screen via setting some registers. There is no option to rotate 90 degrees, only 270, leaving the X axis, and thus text and bitmaps mirrored. Whoever designed this should be forced to use it.

        Real programmers use butterflies

        D Offline
        D Offline
        den2k88
        wrote on last edited by
        #4

        Because you can mirror the x axis yourself reading the lines backwards.

        GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++*      Weapons extension: ma- k++ F+2 X

        honey the codewitchH 1 Reply Last reply
        0
        • honey the codewitchH honey the codewitch

          The RA8875 is a controller for an 800x480 display I am using in a project. You can rotate the screen via setting some registers. There is no option to rotate 90 degrees, only 270, leaving the X axis, and thus text and bitmaps mirrored. Whoever designed this should be forced to use it.

          Real programmers use butterflies

          P Online
          P Online
          PIEBALDconsult
          wrote on last edited by
          #5

          "Rotate" doesn't exist -- there are only flips, on three axes. :-D Odd that they provide only two bits when you need three.

          honey the codewitchH 1 Reply Last reply
          0
          • P PIEBALDconsult

            "Rotate" doesn't exist -- there are only flips, on three axes. :-D Odd that they provide only two bits when you need three.

            honey the codewitchH Online
            honey the codewitchH Online
            honey the codewitch
            wrote on last edited by
            #6

            Call it what you want. You know what I was talking about so I did my part. Prescriptivism is annoying.

            Real programmers use butterflies

            1 Reply Last reply
            0
            • D den2k88

              Because you can mirror the x axis yourself reading the lines backwards.

              GCS d--(d-) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++*      Weapons extension: ma- k++ F+2 X

              honey the codewitchH Online
              honey the codewitchH Online
              honey the codewitch
              wrote on last edited by
              #7

              Yeah, no. Because then you can't send bitmap data using DMA, and you need to generate a lot more bus traffic. The device should have been designed correctly.

              Real programmers use butterflies

              1 Reply Last reply
              0
              • honey the codewitchH honey the codewitch

                The RA8875 is a controller for an 800x480 display I am using in a project. You can rotate the screen via setting some registers. There is no option to rotate 90 degrees, only 270, leaving the X axis, and thus text and bitmaps mirrored. Whoever designed this should be forced to use it.

                Real programmers use butterflies

                F Offline
                F Offline
                Fueled By Decaff
                wrote on last edited by
                #8

                Could you do the rotation and then use the horizontal and vertical scan direction registers to mirror the display (and get an extra 180 degrees of rotation)?

                honey the codewitchH 1 Reply Last reply
                0
                • F Fueled By Decaff

                  Could you do the rotation and then use the horizontal and vertical scan direction registers to mirror the display (and get an extra 180 degrees of rotation)?

                  honey the codewitchH Online
                  honey the codewitchH Online
                  honey the codewitch
                  wrote on last edited by
                  #9

                  It doesn't have registers for mirroring aside from the two bits it uses, and I need three.

                  Real programmers use butterflies

                  F 1 Reply Last reply
                  0
                  • honey the codewitchH honey the codewitch

                    It doesn't have registers for mirroring aside from the two bits it uses, and I need three.

                    Real programmers use butterflies

                    F Offline
                    F Offline
                    Fueled By Decaff
                    wrote on last edited by
                    #10

                    Register 20H instead of 40H/45H? Or is that the wrong controller I am looking at? It might be something completely different or not do what you need. I agree, it does need three bits to get all of the rotations/mirrors that are possible and they have a spare bit, so why didn't they just give all eight options?

                    honey the codewitchH 2 Replies Last reply
                    0
                    • F Fueled By Decaff

                      Register 20H instead of 40H/45H? Or is that the wrong controller I am looking at? It might be something completely different or not do what you need. I agree, it does need three bits to get all of the rotations/mirrors that are possible and they have a spare bit, so why didn't they just give all eight options?

                      honey the codewitchH Online
                      honey the codewitchH Online
                      honey the codewitch
                      wrote on last edited by
                      #11

                      Fueled By Decaff wrote:

                      Register 20H instead of 40H/45H?

                      Nice catch! I guess my eyes are glazing over it after poring over it for a day while writing a driver for it. I'll see if it works. I don't know why they didn't use 3 bits. It's just weird.

                      Real programmers use butterflies

                      P 1 Reply Last reply
                      0
                      • F Fueled By Decaff

                        Register 20H instead of 40H/45H? Or is that the wrong controller I am looking at? It might be something completely different or not do what you need. I agree, it does need three bits to get all of the rotations/mirrors that are possible and they have a spare bit, so why didn't they just give all eight options?

                        honey the codewitchH Online
                        honey the codewitchH Online
                        honey the codewitch
                        wrote on last edited by
                        #12

                        You're my friggin hero today. :thumbsup::thumbsup::thumbsup: It worked. It's weird reversing both reads and writes, but it worked. Woo! Thank you so much!

                        Real programmers use butterflies

                        1 Reply Last reply
                        0
                        • honey the codewitchH honey the codewitch

                          It's not quite 5am and my spatial reasoning may not be entirely on point right now. Basically when I rotate it, it goes 90 degrees with the X axis inverted. You cannot rotate it 3 times nor flip the X axis because they only use 2 bits to store the rotation. These are the directions you can set the memory write order: LRTD RLTD TDLR DTLR (T=Top, R=Right, D=Down, L=Left)

                          Real programmers use butterflies

                          J Offline
                          J Offline
                          Jorgen Andersson
                          wrote on last edited by
                          #13

                          I'm missing the TLDR option ;P

                          Wrong is evil and must be defeated. - Jeff Ello

                          1 Reply Last reply
                          0
                          • honey the codewitchH honey the codewitch

                            Fueled By Decaff wrote:

                            Register 20H instead of 40H/45H?

                            Nice catch! I guess my eyes are glazing over it after poring over it for a day while writing a driver for it. I'll see if it works. I don't know why they didn't use 3 bits. It's just weird.

                            Real programmers use butterflies

                            P Offline
                            P Offline
                            Peter Adam
                            wrote on last edited by
                            #14

                            Probably their use case is flipping the image for projectors. [how do i flip the projector image upside down](https://www.justprojectors.com.au/blog/flipping\_the\_projected\_image\_upside\_down\_for\_ceiling\_installation.htm)

                            honey the codewitchH 1 Reply Last reply
                            0
                            • P Peter Adam

                              Probably their use case is flipping the image for projectors. [how do i flip the projector image upside down](https://www.justprojectors.com.au/blog/flipping\_the\_projected\_image\_upside\_down\_for\_ceiling\_installation.htm)

                              honey the codewitchH Online
                              honey the codewitchH Online
                              honey the codewitch
                              wrote on last edited by
                              #15

                              Usually these IoT display controllers allow you to rotate any direction due to the screen orientation being unknown in advance. In any case, thanks to FueledByDecaf I worked it out by adjusting both the write order and the scan direction both.

                              Real programmers use butterflies

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups