INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
wieder mal: Problem mit arrays als Fkt.-Parameter
12.05.2015, 20:22 (Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2015 20:23 von HaWe.)
Beitrag #9
RE: wieder mal: Problem mit arrays als Fkt.-Parameter
jetzt nach memset macht er nur Nullen, so wie es sein soll
- oder was genau möchtest du wissen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.05.2015, 20:25
Beitrag #10
RE: wieder mal: Problem mit arrays als Fkt.-Parameter
(12.05.2015 20:22)HaWe schrieb:  jetzt nach memset macht er nur Nullen, so wie es sein soll
- oder was genau möchtest du wissen?
Ich finde es sehr, sehr seltsam, dass das nach dem memset funktioniert. Ich bin mir sicher, dass da noch was anderes faul ist.
Wenn Du damit zufrieden bist, dann soll es mir recht sein. Ich persönlich würde mal einen kleinen Sketch schreiben, der ausschließlich das mit dem SetNetPattern drin hat und mal nachsehen, ob das Problem da immer noch auftritt.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.05.2015, 20:26 (Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2015 20:49 von HaWe.)
Beitrag #11
RE: wieder mal: Problem mit arrays als Fkt.-Parameter
fand ich ehrlich gesagt auch.

hier ist die komplette Funktion:

Code:
int16_t  CheckCurrInPattern() {
   int16_t  i, p;
  
   for( p = 1; p <= NumPattern ; ++p) {  
      for( i = 1; (i <= NumInput) && ( Input[p][i] == currIn[i] ); ++i);
      if (i > NumInput) {return p; }
   }  
   return -1;
}


//================================================================================​=====
void SetNetPattern(int16_t  patt,  float * _ibuf,  float * _obuf){
   int16_t i, o;
  
   if (NumPattern < NMAXPAT) {
      NumPattern++;  
      Serial.print("NumPattern="); Serial.print(NumPattern);  Serial.print("  SetNetPattern="); Serial.println(patt);
      for(i=1; i<=NMAXIN;  ++i) { Input[patt][i]  = _ibuf[i]; Serial.println( Input[patt][i] ) ; }
      Serial.println("     Targets: ");
      for(o=1; o<=NMAXOUT; ++o) { Target[patt][o] = _obuf[o]; Serial.println( Target[patt][o] ) ; }
   }
}


//================================================================================​=====
void SetNetDefaultPatterns(){
    float _ibuf[NMAXIN+1], _obuf[NMAXOUT+1];
  
    memset( _ibuf, 0, sizeof(_ibuf) );   memset( _obuf, 0, sizeof(_obuf) );
    _ibuf[1]=0; _ibuf[2]=0; _ibuf[3]=0; _ibuf[4]=0; _ibuf[5]=0; _ibuf[6]=0;  
    _obuf[1]=0; _obuf[2]=0; _obuf[3]=0; _obuf[4]=0; _obuf[5]=0; _obuf[6]=0;
    SetNetPattern(2, _ibuf, _obuf);
    
    memset( _ibuf, 0, sizeof(_ibuf) );   memset( _obuf, 0, sizeof(_obuf) );
    _ibuf[1]=0; _ibuf[2]=0; _ibuf[3]=1; _ibuf[4]=0; _ibuf[5]=0; _ibuf[6]=1;  
    _obuf[1]=1; _obuf[2]=1; _obuf[3]=0; _obuf[4]=0; _obuf[5]=1; _obuf[6]=0;
    SetNetPattern(1, _ibuf, _obuf);
    
    memset( _ibuf, 0, sizeof(_ibuf) );   memset( _obuf, 0, sizeof(_obuf) );
    _ibuf[1]=0; _ibuf[2]=1; _ibuf[3]=0; _ibuf[4]=0; _ibuf[5]=1; _ibuf[6]=1;  
    _obuf[1]=1; _obuf[2]=1; _obuf[3]=0; _obuf[4]=1; _obuf[5]=0; _obuf[6]=0;
    SetNetPattern(3, _ibuf, _obuf);
    
    memset( _ibuf, 0, sizeof(_ibuf) );   memset( _obuf, 0, sizeof(_obuf) );
    _ibuf[1]=0; _ibuf[2]=1; _ibuf[3]=1; _ibuf[4]=0; _ibuf[5]=1; _ibuf[6]=1;  
    _obuf[1]=0; _obuf[2]=0; _obuf[3]=0; _obuf[4]=1; _obuf[5]=1; _obuf[6]=0;
    SetNetPattern(4, _ibuf, _obuf);
    
    memset( _ibuf, 0, sizeof(_ibuf) );   memset( _obuf, 0, sizeof(_obuf) );
    _ibuf[1]=1; _ibuf[2]=0; _ibuf[3]=0; _ibuf[4]=1; _ibuf[5]=0; _ibuf[6]=0;  
    _obuf[1]=0; _obuf[2]=0; _obuf[3]=1; _obuf[4]=0; _obuf[5]=0; _obuf[6]=0;
    SetNetPattern(5, _ibuf, _obuf);
    
    memset( _ibuf, 0, sizeof(_ibuf) );   memset( _obuf, 0, sizeof(_obuf) );
    _ibuf[1]=1; _ibuf[2]=0; _ibuf[3]=1; _ibuf[4]=1; _ibuf[5]=0; _ibuf[6]=1;  
    _obuf[1]=1; _obuf[2]=1; _obuf[3]=1; _obuf[4]=0; _obuf[5]=1; _obuf[6]=0;
    SetNetPattern(6, _ibuf, _obuf);
    
    memset( _ibuf, 0, sizeof(_ibuf) );   memset( _obuf, 0, sizeof(_obuf) );
    _ibuf[1]=1; _ibuf[2]=1; _ibuf[3]=0; _ibuf[4]=1; _ibuf[5]=1; _ibuf[6]=0;  
    _obuf[1]=1; _obuf[2]=1; _obuf[3]=1; _obuf[4]=1; _obuf[5]=0; _obuf[6]=0;
    SetNetPattern(7, _ibuf, _obuf);

    memset( _ibuf, 0, sizeof(_ibuf) );   memset( _obuf, 0, sizeof(_obuf) );  
    _ibuf[1]=1; _ibuf[2]=1; _ibuf[3]=1; _ibuf[4]=1; _ibuf[5]=1; _ibuf[6]=1;  
    _obuf[1]=0; _obuf[2]=0; _obuf[3]=1; _obuf[4]=1; _obuf[5]=1; _obuf[6]=1;
    SetNetPattern(8, _ibuf, _obuf);
    
  


}

und hier jetzt die Ausgabe:

Code:
NumPattern=1  SetNetPattern=2
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
     Targets:
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
NumPattern=2  SetNetPattern=1
0.00
0.00
1.00
0.00
0.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
     Targets:
1.00
1.00
0.00
0.00
1.00
0.00
0.00
0.00
0.00
0.00
NumPattern=3  SetNetPattern=3
0.00
1.00
0.00
0.00
1.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
     Targets:
1.00
1.00
0.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
NumPattern=4  SetNetPattern=4
0.00
1.00
1.00
0.00
1.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
     Targets:
0.00
0.00
0.00
1.00
1.00
0.00
0.00
0.00
0.00
0.00
NumPattern=5  SetNetPattern=5
1.00
0.00
0.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
     Targets:
0.00
0.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
NumPattern=6  SetNetPattern=6
1.00
0.00
1.00
1.00
0.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
     Targets:
1.00
1.00
1.00
0.00
1.00
0.00
0.00
0.00
0.00
0.00
NumPattern=7  SetNetPattern=7
1.00
1.00
0.00
1.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
     Targets:
1.00
1.00
1.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
NumPattern=8  SetNetPattern=8
1.00
1.00
1.00
1.00
1.00
1.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
     Targets:
0.00
0.00
1.00
1.00
1.00
1.00
0.00
0.00
0.00
0.00

vielleicht, weil Pattern 2 gepatcht wird, obwohl NumPattern nur auf 1 steht.... ?
das muss allerdings funktionieren, denn später geht alles durcheinander an Nummern.
Außerdem wird nur ein Teil gepatcht, ein anderer nicht (nur 6 von 100 Ins, und nur 8 von 10 outs)

Korrektur - das mit Pattern 2 bei Numpattern=1 kann nicht der Grund sein, denn es folgen ja sofort die restlichen, insb. das "echte" 2.Muster...

!

vielleicht werden ja wirklich die lokalen arrays nicht alle bei der Deklaration komplett mit Null initialisiert...?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.05.2015, 22:10
Beitrag #12
RE: wieder mal: Problem mit arrays als Fkt.-Parameter
Hi,
ist etwa NMAXIN und NMAXOUT größer als 6? Dann fehlt natürlich was.
Bei der Deklaration wird gar nichts initialisiert. Da steht dann das drin, was vorher zufällig in dem Speicherbereich steht. Das ist C und nicht ABAP...
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2015, 07:44
Beitrag #13
RE: wieder mal: Problem mit arrays als Fkt.-Parameter
ja, sind beide größer, ich dachte wirklich, beim Neuinitialisieren wären alle Werte Null.
ABAP kenne ich allerdings gar nicht Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2015, 09:29
Beitrag #14
RE: wieder mal: Problem mit arrays als Fkt.-Parameter
(13.05.2015 07:44)HaWe schrieb:  ja, sind beide größer, ich dachte wirklich, beim Neuinitialisieren wären alle Werte Null.
Nein, C macht eigentlich nichts, was man nicht explizit sagt. Das ist auch ganz gut so, da dann kein (Programm-)Speicherplatz verschwendet wird. Wenn Du Variablen initialisieren willst, dann musst Du das im Programm selbst machen.

Zitat:ABAP kenne ich allerdings gar nicht Wink
Das ist die Programmiersprache von SAP. In dem Umfeld kommt es nicht auf ein paar Byte mehr oder weniger an. In ABAP werden Variablen bei der Definition automatisch mit einem typspezifischen Initialwert belegt.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem mit der Textauswertung Franz54 13 313 15.04.2018 18:17
Letzter Beitrag: Tommy56
  Problem mit RIFD UID ParadoxDev 6 230 27.03.2018 12:04
Letzter Beitrag: ParadoxDev
  Problem mit OLED 0.96" Display torsten_156 5 1.701 07.03.2018 23:27
Letzter Beitrag: Tommy56
  Ucglib Library Problem Bully 26 911 05.03.2018 18:47
Letzter Beitrag: Tommy56
  Serieller string zwischenspeichern und wieder ausgeben. Matt 15 779 03.03.2018 20:23
Letzter Beitrag: Tommy56
  Wieder mal einer mit serial Probs :-( Bikandajyo 13 459 03.03.2018 08:35
Letzter Beitrag: Bikandajyo
  Wieder 7 Segment LED daja64 2 227 21.02.2018 22:41
Letzter Beitrag: daja64
  Schon wieder eine Zeitschaltung Eckardt 7 368 28.01.2018 10:26
Letzter Beitrag: Tommy56
  Problem mit Wire.available() abfrage avoid 1 330 11.01.2018 13:40
Letzter Beitrag: Tommy56
  Arrays of String in C Diskusguppy 3 365 16.12.2017 10:12
Letzter Beitrag: Diskusguppy

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste