TVout und Serielle Kommunikation

Hallo Leute,

kann mir jemand weiterhelfen?

Ich bin gerade dabei mit der TVout library den Bildschirm in meinem Fahrzeug zu prigrammieren.
Dies soll über zwei Arduinos laufen (UNO und Mega). Das Bildschirm wird mit dem UNO verbunden und der UNO über die Seriellen PINs TX RX.
Es klappt alles mit meinem Pogramm aber nur bis 6 Schleifen. Wenn ich eine 7. hinzufüge bleibt mein Bildschirm Blau. Hier mein Programm mit den 6 Schleifen wo es noch funktioniert.

//UNO
#include<TVout.h>

TVout TV;
unsigned char x,y;

void setup() {
 x=0;
 y=0;
 TV.start_render(_PAL);
 Serial.begin(250000);
 TV.clear_screen();
 TV.delay_frame(25);
 TV.print_str(32,16,"Connected");
}

void loop() {
 {
   if (Serial.available())
   {
     delay(25);
     Serial.println("available");
     delay(25);
     byte in = Serial.read();

     if (in=='q')
     {
       TV.clear_screen();
       TV.delay_frame(25);
       Serial.print("Zundung: 1");
     TV.print_str(0,0,"Zundung: 1");
     TV.delay_frame(10);
     }

     if (in=='w')   
   {
     TV.print_str(0,8,"Zundung: 2");
   Serial.print("Zundung: 2");
   TV.delay_frame(10);
   }
   if (in=='r')
     {
       TV.clear_screen();
       TV.delay_frame(10);
       TV.print_str(0,16,"Motor wird gestartet");       
     }

     if (in=='z')
     {
       TV.clear_screen();
       TV.delay_frame(10);
       TV.print_str(16,24,"Motor gestartet");       
     }

     if (in=='u')
     {
       TV.clear_screen();
       TV.delay_frame(10);
       TV.print_str(16,24,"Motor gestoppt");
     }

     if (in=='o')
     {
       TV.clear_screen();
       TV.delay_frame(10);
       TV.print_str(16,24,"Linke Tuere offen");
       delay(20);
     }     
   }//nach Serial available   
 }//vor Serial available
}

Sobald ich nach der letzten Schleife eine weitere hinzufüge klappt nichts mehr.
Kann mir da vielleicht jmnd. weiterhelfen??

Dann zeig uns doch mal, was in der 7. Schleife drin steht.

Um das TV signal zu produzieren ist der Controller ziemlich ausgelastet. Da funktioniert wenig nebenher. Ich tippe daß das RAM zuwenig ist.

Grüße Uwe

@HotSystems

//UNO
#include<TVout.h>


TVout TV;
unsigned char x,y;




void setup() {
 x=0;
 y=0;
 TV.start_render(_PAL);
 Serial.begin(250000);
 TV.clear_screen();
 TV.delay_frame(25);
 TV.print_str(32,16,"Connected");


}

void loop() {
 {
   if (Serial.available())
   {
     delay(25);
     Serial.println("available");
     delay(25);
     byte in = Serial.read();

     if (in=='q')
     {
       TV.clear_screen();
       TV.delay_frame(25);
       Serial.print("Zundung: 1");
     TV.print_str(0,0,"Zundung: 1");
     TV.delay_frame(10);
     }
     if (in=='w')
   
   {
     TV.print_str(0,8,"Zundung: 2");
   Serial.print("Zundung: 2");
   TV.delay_frame(10);
   }
   if (in=='r')
     {
       TV.clear_screen();
       TV.delay_frame(10);
       TV.print_str(0,16,"Motor wird gestartet");
       
     }
     if (in=='z')
     {
       TV.clear_screen();
       TV.delay_frame(10);
       TV.print_str(16,24,"Motor gestartet");
       
     }

     if (in=='u')
     {
       TV.clear_screen();
       TV.delay_frame(10);
       TV.print_str(16,24,"Motor gestoppt");
     }


     if (in=='o')
     {
       TV.clear_screen();
       TV.delay_frame(10);
       TV.print_str(16,24,"Linke Tuere offen");
       delay(20);
     }
//7.Schleife
//ab hier geht nix mehr

     if (in=='p')
     {
       TV.clear_screen();
       TV.delay_frame(10);
       TV.print_str(16,24,"Rechte Tuere offen");
       delay(20);
     }
     
     
     
     

     
   
     
   }//nach Serial available
   
 }//vor Serial available



}

@uwefed
und was könnte ich da machen?

Ok, die 7. If-Anweisung sieht ok aus.

Wenn das Ram nicht reicht, müsste doch eine Fehlermeldung kommen.

Es wird ganz normal draufgeflasht aber dann wenn ich SerialMonitor öffne und Serielle Signale sende empfängt es auch nichts und gibt daher auch kein Wert zurück :/

Das ist das was unten nach dem flashen gezeigt wird:

Der Sketch verwendet 7.362 Bytes (22%) des Programmspeicherplatzes. Das Maximum sind 32.256 Bytes.
Globale Variablen verwenden 371 Bytes (18%) des dynamischen Speichers, 1.677 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes

HotSystems: ... Wenn das Ram nicht reicht, müsste doch eine Fehlermeldung kommen. ...

Auch, wenn es möglicherweise erst zur Laufzeit knapp wird?! So einen Parser/Code-Analyzer würde ich gerne mal sehen.

Gruß

Gregor

bulduk: Es wird ganz normal draufgeflasht aber dann wenn ich SerialMonitor öffne und Serielle Signale sende empfängt es auch nichts und gibt daher auch kein Wert zurück :/

Hast du die Baudrate (unter rechts im Fenster) richtig eingestellt?

HotSystems: Ok, die 7. If-Anweisung sieht ok aus.

Wenn das Ram nicht reicht, müsste doch eine Fehlermeldung kommen.

Keineswegs.

Es ist eine der Gründe wieso der Arduino komische, unvorhersehbare Reaktionen macht oder sich ganz blockiert.

Die TV Bibliothek braucht sicher einen Bildspeicher und eine Charackter ROM. Das braucht beides viel Speicher (RAM bzw FLASH). Welche Auflösung hast Du eingestellt?

Grüße Uwe

hi,

@uwefed und was könnte ich da machen?

laß es mal testweise auf dem mega laufen. wenn das geht, ist's ziemlich sicher das RAM. gruß stefan

HotSystems: Hast du die Baudrate (unter rechts im Fenster) richtig eingestellt?

Ja die Baudrate ist richtig eingestellt

Eisebaer: hi, laß es mal testweise auf dem mega laufen. wenn das geht, ist's ziemlich sicher das RAM. gruß stefan

Das habe ich versucht aber ich bekomm das irgendwie mit dem mega nicht hin :/ beim mega ist es ja eine andere library nicht wahr? Könnte mir da vllt jmnd einen link senden wo genau steht welche library und welche pins ich verwenden muss?

Welche Auflösung hast Du eingestellt?

Grüße Uwe [/quote]

Oben ist das ganze Programm ich bin in der Hinsicht ein wenig unerfahren:/ Ich glaube ich habe so eine Einstellung überhaupt nicht vorgenommen.