Loop/stop van de MAX7219 Dot Matrix -proberen te doorgronden

Software vragen voor ESP chip familie
Berichten: 21
Geregistreerd: 09 Mrt 2019, 18:35

Loop/stop van de MAX7219 Dot Matrix -proberen te doorgronden

Berichtdoor DavyC » 02 Apr 2019, 15:38

Hoi allemaal,

Ik maak even een sub draadje van dit onderwerp (http://www.arduinoforum.nl/viewtopic.php?f=33&t=3413) omdat op zich daar alles draait maar ik specifiek 1 deel niet in orde krijg en vooral probeer te begrijpen (in mensentaal) hoe ik het moet doorgronden.

Het gaat specifiek over de functie
Code: Alles selecteren
void MAX7219_Dot_Matrix::sendSmooth (const char * s, const int pixel)
die ik aanroep.
De hele specificatie van deze library vond ik hier : https://github.com/nickgammon/MAX7219_Dot_Matrix/blob/master/src/MAX7219_Dot_Matrix.cpp

Eerlijkheid gebiedt me te zeggen dat de code om de tekst te laten bewegen een copy is van projectjes gevonden op internet.

Concreet zijn er twee stukken code die van belang zijn :

Code: Alles selecteren
void loop() {
  server.handleClient();

  if (millis () - lastMoved >= MOVE_INTERVAL) {
    updateDisplay (decodedMsg);
    lastMoved = millis ();
  }
  delay(1);
}



Deze code roept de updateDisplay functie aan.
Helaas weet ik niet goed hoe de functie er rond te interpreteren.

Het volgende stuk is de aanroep van de sendSmooth :

Code: Alles selecteren
void updateDisplay (String m) {

  String str = "This is my string";
  int str_len = m.length() + 1;
  char char_array[str_len];
  m.toCharArray(char_array, str_len);

  display.sendSmooth (char_array, messageOffset); //Display commands for the Matrix
  if (messageOffset++ >= (int) (strlen (char_array) * 8))
    messageOffset = - chips * 8;
}


Concreet werkt mijn programma : Ik kies een waarde, deze wordt als decodedMsg naar de updateDisplay gestuurd en blijft daar continue over de LEDmatrix scrollen.

Volgens mij heb ik al loops en floats gezet op zowat alle plaatsen maar lukt het me niet mijn twee problemen op te lossen :

1. Ik wil dat de boodschap die ik stuur MAX 3 keer (volledig) over het scherm scrollt.
2. Als ik de boodschap stuur, moet het scherm eerst leeg gemaakt worden en dan pas de volgende boodschap schrijven.


Voor item 1: het lukt me nergens met een loop om dit max 3 keer te laten gebeuren. Ik had nu gedacht te werken met een float variabele die dit kan oplossen maar die zorgt er nu voor dat de boodschap niet meer scrollt.

Voor item 2: als nu een tekst loopt en ik klik op de knop, dan verandert de tekst op de plaats waar hij op dat moment is. Ik zou echter willen dat de bestaande tekst tenminste tot het einde scrollt, dan even het scherm leeg blijft en dan pas de nieuwe boodschap wordt getoond.

Is er iemand die me wat meer kan helpen om een oplossing te vinden ?

Alvast vriendelijk bedankt,

Davy

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Loop/stop van de MAX7219 Dot Matrix -proberen te doorgro

Berichtdoor shooter » 02 Apr 2019, 20:28

item 1 kun je in deloop dus zien dat als de message is veranderd er een teller naar 1 moet springen
als die teller nog geen 4 is dan na een tijdje dus weer updaten.
voor item2 maak je een busy flag aan dus je doet een update en gelijk zet je de busy flag aan.
aan het einde van je array kun je die busy flag uitzetten.
paul deelen
shooter@home.nl

Berichten: 21
Geregistreerd: 09 Mrt 2019, 18:35

Re: Loop/stop van de MAX7219 Dot Matrix -proberen te doorgro

Berichtdoor DavyC » 05 Apr 2019, 09:19

Paul,

heel erg bedankt voor de tijd die je stak in een antwoordje.
Hetgeen je beschrijft is helemaal correct, maar het lukt me niet om dit aan het werken te krijgen. Ik heb echt vanalles geprobeerd, dus eventueel een stukje code meegeven ter hulp zou me enorm veel verder helpen.

Hoe kan ik zien in de loop dat de message veranderd is? En waar moet ik dan juist de teller plaatsen? Ik had reeds tellers geplaatst, maar deze gaven telkens een heel bizar resultaat.
Ook die "busy flag" had ik al eens geprobeerd, maar ook die krijg ik niet op de juiste plaats.

Dus een stukje code zou handig zijn... :-)

Mvg,
Davy

Berichten: 21
Geregistreerd: 09 Mrt 2019, 18:35

Re: Loop/stop van de MAX7219 Dot Matrix -proberen te doorgro

Berichtdoor DavyC » 09 Apr 2019, 18:48

Hoi iedereen,

in het draadje waaruit dit groeide heb ik ondertussen de werkende code gezet.
Bedankt voor iedereen die met me mee dacht.

Mvg,

Davy

Terug naar ESP Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten