title: Error Message: pinmap not found for peripheral Location: 0x8009B0B on Nucleo-F429ZI
body: <p>when I load this onto my board, I get a pinmap not found for peripheral error. 
  I did some research on this problem (<a href="https://os.mbed.com/forum/helloworld/topic/1211/" rel="nofollow noreferrer">One of the pages I visited</a>) and I think I understand the problem,
  however the pins I'm using all support exactly what I'm asking them to do. This problem has only arisen since I converted my code from procedural to object orientated (I need to do this to implement scheduling properly). </p>
  
  <p>I have a feeling it's to do with how I'm initializing them in the constructor member initialiser list as i don't fully understand how it works (I'm fairly new to C++).</p>
  
  <p>there are other classes to my program however they follow the same structure as my UpdateOutput class.</p>
  
  <p>Thanks in advance for any advice.</p>
  
  <pre><code>int main() {
      printf("inside main");
  
      DigitalOut led1(LED1);
      AnalogOut Vout(A0);
      UpdateOutput wave;
      SensorData inputs;
      Timer time;
  
      enum waves {OFF = 0, SINE, TRIANGLE, SAW, SQUARE};
      int waveType = OFF;
  
      float sonarCorrection = inputs.calibrateSonar();//makes a measurement of the acatual run time of the sonar code
      float topFrequency = 1047.0f;                                       //the highest frequency the synth will play
      float upperSonarThreshold = 1000.0f;                        //the furthest distance the sonar will register
      float lowerSonarThreshold = 100.0f;                         //the closest distance the sonar will measure
      float period = 2272.73f; 
      //replace with:
      //float period = inputs.getFrequency(float lowerThreshold, float upperThreshold, int correction, float topFrequency);
      //after bug fixes have been applied
  
      led1 = 1;                   //turn on led1 to show code is running properly
  
      time.reset();
      time.start();
      int tmr = time.read_us();
  
      //test loop before thredding is applied
      while(true)
      {
          waveType = SINE; //keep synth producing a sine wave for testing
          tmr = time.read_us();
          switch(waveType)
          {
              case OFF:
                  Vout = 0.0f;
                  break;
  
              case SINE:
                  Vout = wave.sinWave(tmr , period);
                  break;
  
              case TRIANGLE:
                  Vout = wave.triangleWave(tmr , period);
                  break;
  
              case SAW:
                      Vout = wave.sawWave(tmr, period);
                  break;
  
              case SQUARE:
                  Vout = wave.squareWave(tmr, period);
                  break;
  
              default:
                  waveType = TRIANGLE;
                  break;
  
  
          }//end of wave type switch case
      }
  
  }
  </code></pre>
  
  <p>Update Output class:</p>
  
  <pre><code>class UpdateOutput{
  
  
      public:
  
  
              //constructor for class, with member initializer list
                  UpdateOutput(): runLed(LED2), clipLed(LED3), dac(D13) 
                  {}
  
              float sinWave(int tmr, float period);
  
              float sawWave(int tmr, float period);
  
              float triangleWave(int tmr, float period);
  
              float squareWave(int tmr, float period);
  
  
      private:
  
      //class attributes
      DigitalOut runLed;
      DigitalOut clipLed;
      AnalogOut dac;
  
      //extern float frequency(float lowerThreshold, float upperThreshold, int correction);
      bool waveState = 0;
      //float lastVout;
  };
  </code></pre>
  
  <p>example of function within UpdateOutputs class</p>
  
  <pre><code>float UpdateOutput::squareWave(int tmr, float period){
      float Vout = 0.0f;
      //float period5 = period/1.587401052;
      float resultingWave;
  
      float x = (float)(tmr % (int)period)/period;
  
      if (x &gt; 0.5f){
          resultingWave = 1.0f;
      }
      else{
          Vout = 0.0f;
      }
  
      Vout = (resultingWave/WAVE_DEVIDOR)+(0.25f); //translate wave to work between 0 and 1 rather than -1 and 1
      if (Vout &gt; 1){
          clipLed = 1;
          Vout = 1.0f;
      }
      else if (Vout &lt; 0.0f){
          clipLed = 1;
          Vout = 0.0f;
      }
      //printf("Vout = %5.3f\n\r", Vout);
      return Vout;
  }//end of squareWave
  </code></pre>