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 Wire.available() abfrage avoid 1 151 11.01.2018 13:40
Letzter Beitrag: Tommy56
  Arrays of String in C Diskusguppy 3 225 16.12.2017 10:12
Letzter Beitrag: Diskusguppy
  SerialComInstruments 4 Problem Darstellung Nextero 35 965 15.12.2017 18:51
Letzter Beitrag: ElEspanol
  Problem mit Nema17 und A4988 Philthy 6 295 08.12.2017 12:35
Letzter Beitrag: Tommy56
  Arduino -> Controllino [Problem gelöst] Cyrilsneer 17 952 27.11.2017 18:49
Letzter Beitrag: Franz54
Question Problem beim seriellen Einlesen von RFID-Reader Bezel 5 422 05.11.2017 22:37
Letzter Beitrag: Tommy56
  Übergabe von Arrays an Funktionen Marcel 4 432 31.10.2017 13:28
Letzter Beitrag: Tommy56
  Fortschritte beim 3-flammigen Gasgrill - nun wieder Pause MOE. 17 1.273 14.09.2017 11:24
Letzter Beitrag: Bitklopfer
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 686 22.08.2017 15:17
Letzter Beitrag: Tommy56
  Problem mit LSM 303 Snörb 1 421 22.08.2017 14:16
Letzter Beitrag: Snörb

Gehe zu:


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