Loading...
Pages: [1]   Go Down
Author Topic: [RISOLTO] Problemi con Seriale e TVout  (Read 286 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti!

Ho una Arduino Uno e sto usando l'IDE 1.0.1.

Utilizzando l'esempio SerialEvent vorrei visualizzare sullo schermo le stesse stringhe date in ingresso nel serial monitor.

Aggiungendo le righe di codice, che mi permetto di visualizzare a video queste stringhe, il programma funziona in modo strano.
Nel senso che si perde qualche carattere.
Ad esempio se io sul serial monitor scrivo:

INPUT                          SerialMonitor & Schermo

12345                          12
12345                          12
12345                          12
12345                          12345
12345                          12345
12345                          1245

Non capisco per quale motivo ogni tanto "perda" dei caratteri.

vi posto il codice:
Code:
#include <TVout.h>
#include <fontALL.h>

String inputString = "";        
boolean stringComplete = false;
TVout TV;


void setup() {
  Serial.begin(9600);
  inputString.reserve(200);
  TV.begin(PAL,120,96);
  TV.select_font(font6x8);
  TV.println("Pronto");
}

void loop() {

  if (stringComplete) {
    
    char vett [20]="";
    inputString.toCharArray(vett, 20);
    Serial.println(inputString);
    TV.println(vett);

    inputString = "";
    stringComplete = false;
  }
}


void serialEvent() {
  while (Serial.available()) {

    char inChar = (char)Serial.read();

    inputString += inChar;

    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}



Grazie.
« Last Edit: April 10, 2013, 06:35:42 am by Ithos92 » Logged

Cagliari
Offline Offline
Faraday Member
**
Karma: 49
Posts: 3030
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prova con la seriale a 115200, forse 9600 è un po' lenta.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Con 115200baud non funziona, non stampa nulla.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 162
Posts: 15746
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora forse é troppo veloce??  smiley-roll
La libreria TVout ha dei timing molto critici. percui disturba altre librerie/lo sketch che sono usate. Abbassa la velocitá e potrebbe funzionare.

Ciao Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se metto dei baud diversi da 9600, non si vede nulla nella seriale, nemmeno un carattere
Logged

Cagliari
Offline Offline
Faraday Member
**
Karma: 49
Posts: 3030
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quello è un noto bug dell'IDE. Setta la lingua inglese e riavvia.
Logged


Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 219
Posts: 16496
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora forse é troppo veloce??  smiley-roll
La libreria TVout ha dei timing molto critici. percui disturba altre librerie/lo sketch che sono usate. Abbassa la velocitá e potrebbe funzionare.

Ciao Uwe
Esatto. Soprattutto ora che la Serial è gestita da interrupt la cosa può dare molto noia alla TVout. Ti consiglio di provare con l'IDE 0022, dove la Serial non usava gli interrupt per leggere e scrivere sulla seriale. Con la TVout ci ho giocato un annetto fa e non mi ricordo di questi problemi.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le ho provate entrambe:
-Cambiando lingua, con un baud rate di 1200 funziona tutto bene.
-Con l'IDE 0022 non sono riuscito:
prima mi da errore sulla riga "inputString.reserve(200);"
dicendo che la classe String non ha nessun membro di nome reserve.
Se commento quella riga, ricompila correttamente ma non visualizza nulla nel serialmonitor, a qualsiasi baud rate.
Logged

Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 219
Posts: 16496
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora stai usando uno sketch scritto per l'IDE 1.x.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora stai usando uno sketch scritto per l'IDE 1.x.

Ho riscritto lo sketch, riesco a compilare, ma c'è sempre il problema della "perdita" di qualche carattere.
Logged

Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 219
Posts: 16496
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa, noto solo ora questo:
Code:
inputString.reserve(200);

Non conoscevo il metodo reserve, non è documentato.
http://arduino.cc/en/Reference/StringObject
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa, noto solo ora questo:
Code:
inputString.reserve(200);

Non conoscevo il metodo reserve, non è documentato.
http://arduino.cc/en/Reference/StringObject


nemmeno io, è presente di default sull'esempio SerialEvent
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie dei consigli.

Ho risolto utilizzando l'ide 0022 e il secondo sketch di esempio della libreria arduino-tvout,
questo : https://code.google.com/p/arduino-tvout/wiki/EX2
Logged

Pages: [1]   Go Up
Print
 
Jump to: