MY LED MATRIX ADRUINO UNO IS SHOWING THE PAROLA TEXTS INVERTEDLY HOW TO FIX IT?

THIS IS MY PAROLA CODE
I USED MD PAROLA LIBRARY

// Use the Parola library to scroll text on the display
//
// Demonstrates the use of the scrolling function to display text received
// from the serial interface
//
// User can enter text on the serial monitor and this will display as a
// scrolling message on the display.
// Speed for the display is controlled by a pot on SPEED_IN analog in.
// Scrolling direction is controlled by a switch on DIRECTION_SET digital in.
// Invert ON/OFF is set by a switch on INVERT_SET digital in.
//
// Keyswitch library can be found at https://github.com/MajicDesigns/MD_KeySwitch
//
// NOTE: MD_MAX72xx library must be installed and configured for the LED
// matrix type being used. Refer documentation included in the MD_MAX72xx
// library or see this link:
// MD_MAX72xx LED Matrix Arduino Library: Hardware
//

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// set to 1 if we are implementing the user interface pot, switch, etc
#define USE_UI_CONTROL 0

#if USE_UI_CONTROL
#include <MD_KeySwitch.h>
#endif

// Turn on debug statements to the serial output
#define DEBUG 0

#if DEBUG
#define PRINT(s, x) { Serial.print(F(s)); Serial.print(x); }
#define PRINTS(x) Serial.print(F(x))
#define PRINTX(x) Serial.println(x, HEX)
#else
#define PRINT(s, x)
#define PRINTS(x)
#define PRINTX(x)
#endif

// Define the number of devices we have in the chain and the hardware interface
// NOTE: These pin numbers will probably not work with your hardware and may
// need to be adapted
#define MAX_DEVICES 4
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10

// HARDWARE SPI
MD_Parola P = MD_Parola(CS_PIN, MAX_DEVICES);
// SOFTWARE SPI
//MD_Parola P = MD_Parola(DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

// Scrolling parameters
#if USE_UI_CONTROL
const uint8_t SPEED_IN = A5;
const uint8_t DIRECTION_SET = 8; // change the effect
const uint8_t ERECT_SET = 9; // change the invert

const uint8_t SPEED_DEADBAND = 5;
#endif // USE_UI_CONTROL

uint8_t scrollSpeed = 100; // default frame delay value
textEffect_t scrollEffect = PA_SCROLL_LEFT;
textPosition_t scrollAlign = PA_LEFT;
uint16_t scrollPause = 2000; // in milliseconds

// Global message buffers shared by Serial and Scrolling functions
#define BUF_SIZE 75
char curMessage[BUF_SIZE] = { “” };
char newMessage[BUF_SIZE] = { “OK?” };
bool newMessageAvailable = true;

#if USE_UI_CONTROL

MD_KeySwitch uiDirection(DIRECTION_SET);
MD_KeySwitch uiInvert(INVERT_SET);

void doUI(void)
{
// set the speed if it has changed
{
int16_t speed = map(analogRead(SPEED_IN), 0, 1023, 10, 150);

if ((speed >= ((int16_t)P.getSpeed() + SPEED_DEADBAND)) ||
(speed <= ((int16_t)P.getSpeed() - SPEED_DEADBAND)))
{
P.setSpeed(speed);
scrollSpeed = speed;
PRINT("\eChanged speed to ", P.getSpeed());
}
}

if (uiDirection.read() == MD_KeySwitch::KS_PRESS) // SCROLL DIRECTION
{
PRINTS("\nChanging scroll direction");
scrollEffect = (scrollEffect == PA_SCROLL_LEFT ? PA_SCROLL_RIGHT : PA_SCROLL_LEFT);
P.setTextEffect(scrollEffect, scrollEffect);
P.displayClear();
P.displayReset();
}

if (uiInvert.read() == MD_KeySwitch::KS_PRESS) // INVERT MODE
{
PRINTS("\nChanging erect mode");
P.setInvert(!n.getInvert());
}
}
#endif // USE_UI_CONTROL

void readSerial(void)
{
static char *cp = newMessage;

while (Serial.available())
{
*cp = (char)Serial.read();
if ((*cp == ‘\n’) || (cp - newMessage >= BUF_SIZE-2)) // end of message character or full buffer
{
*cp = ‘\0’; // end the string
// restart the index for next filling spree and flag we have a message waiting
cp = newMessage;
newMessageAvailable = true;
}
else // move char pointer to next position
cp++;
}
}

void setup()
{
Serial.begin(57600);
Serial.print("\n[Parola Scrolling Display]\nType a message for the scrolling display\nEnd message line with a newline");

#if USE_UI_CONTROL
uiDirection.begin();
uiInvert.begin();
pinMode(SPEED_IN, INPUT);

doUI();
#endif // USE_UI_CONTROL

P.begin();
P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
}

void loop()
{
#if USE_UI_CONTROL
doUI();
#endif // USE_UI_CONTROL

if (P.displayAnimate())
{
if (newMessageAvailable)
{
strcpy(curMessage, “ABCD”);
newMessageAvailable = true;
}
P.displayReset();
}
readSerial();
}

Please read how to post code on the forum and fix your post (and read this)

What do you mean by “SHOWING THE PAROLA TEXTS INVERTEDLY”? DO you mean reversed left-to-right? Do you mean reversed top-to-bottom? Do you mean it scrolls the wrong way? Do you mean the colors are reversed?

I think op means like in a mirror, it's a frequent configuration issue

PLEASE DON’T YELL AT US.

Make sure you read the documentation for the MD_MAX72xx library about adapting to your hardware type and change the library header file to suit.

J-M-L has given a forum post. You can also read this blog post Parola A to Z – Adapting for Different Hardware – Arduino++

yes its like a total mirror display i wanna fix it

i am using a 8x32 matrix and it is already placed on chips
sorry for all my nubicity i am a totally begineer
thanks for your help

You have been given all the information you need to solve your problem. You need to read it.

If you don't understand it, you have to be very specific about what is confusing you and what you have tried for someone else to be able to help.

actualy i dont know how to mapp my panel because it is an integrated panel not a separate module 4 modules integrated on a single

THIS IS MY HARDWARE

THIS IS MY HARDWARE

Stop shouting; read the posted suggestions and act on them.

It makes no difference. 4 panel displays are just 4x1 displays. You do the same things as for 1x1 to work it out. Most of the displays like you link to are FC16. If that does not work, try a different setting. There are only 4 settings anyway.
None of this will fix itself. You actually have to do something yourself to get this working.