STM32F0 Fehler: "_ansi.h: No such file or directory"

OP #4445370
Lesenswert?

Hallo,

ich beschäftige mich gerade mit einem STM32F0 Discovery Board und bin 
dabei, ein einfaches LED-Blinkprogramm zu schreiben. Dazu habe ich das 
Tutorial im 
https://www.mikrocontroller.net/articles/STM32_CooCox_Installation
durchgeführt und auf das STM32F0 Board adaptiert. Das funktioniert auch 
schon.
Um das Setzen der Ausgänge zu vereinfachen habe ich eine Funktion 
erstellt. Dieser Funktion übergebe ich den Pin, den ich setzen möchte, 
und den Wert. In der Funktion wird die Pinnummer in einen Dezimalwert 
umgewandelt und dem Set- bzw. Resetregister übergeben.
Für die Funktion pow(2, pin) benötige ich die Math.h.

CooCox meckert jetzt aber, dass er "_ansi.h" nicht finden kann.

Wie kann ich den Fehler beheben? Gibt es eventuell eine andere 
Möglichkeit das Setzen der Pins zu vereinfachen?

Hier der Code:

1
#include "stm32f0xx.h"
2
#include "math.h"
3

4
void Delay (int a);
5
void setOutC (int pin, int val);
6

7
int main(void)
8
{
9

10
  RCC->AHBENR |= RCC_AHBENR_GPIOCEN; // Clock für Port C aktivieren
11

12
      GPIOC->MODER = 0x55555555; // PINC.0 .. PINC.15 als Ausgang definieren
13

14
      while(1) // Endlosschleife
15
      {
16
          setOutC(9,0); //Funktionsaufruf: PINC.9 = 0
17
          setOutC(8,0); //Funktionsaufruf: PINC.8 = 0
18
        //GPIOC->BRR = 0b0000001100000000; // Alle LEDs aus
19
          Delay(500000);
20
          setOutC(8,1); //Funktionsaufruf: PINC.8 = 1
21
          //GPIOC->BSRR = 0b0000001000000000; // LED 1 ein
22
          Delay(500000);
23
          setOutC(9,1); //Funktionsaufruf: PINC.9 = 1
24
          //GPIOC->BSRR = 0b0000000100000000; // LED 2 ein
25
          Delay(500000);
26

27
      }
28
}
29

30
// Delay
31
void Delay (int a)
32
{
33
    volatile int i,j;
34

35
    for (i=0 ; i < a ; i++)
36
    {
37
        j++;
38
    }
39

40
    return;
41
}
42

43
void setOutC (int pin, int val)
44
{
45
  if(val==0){
46
    GPIOC->BRR = pow(2,pin);
47
  } else if(val==1) {
48
    GPIOC->BSRR = pow(2,pin);
49
  }
50
  return;
51
}

Info: Ich bin absoluter C-Neuling. (Habe nur etwas Erfahrung in Java)

Danke im Voraus!
Angehängte Dateien:
Gast #4446039
Lesenswert?

Luca E. schrieb:

> Info: Ich bin absoluter C-Neuling.

Sieht man. Besser mit Basiswissen in C anfangen, Stichwort 
Bit-Operationen.

Und für math.h braucht es die Linker Option -lm und die Definition, 
welches FP Modell verwendet werden soll, gibt da recht viele. Beim FP 
ganz sicher Soft-FP.

math.h braucht aber hier keiner.
OP #4446176
Lesenswert?

Jim M. schrieb:
> Wenn Du stattdessen
> 1<< pin;
> nimmst

Danke, das funktioniert.

John Doe schrieb:
> Lies mal erst ein C-Tutorial...

Ja, das werde ich tun.

Aktuell habe ich das Problem, das ich das Board nicht mehr programmiert 
bekomme... "Error: Connect failed, check config and cable connection"
Der ST-Link wird im Gerätemanager angezeigt, an der Config habe ich 
nichts verändert und ist mit der aus dem Tutorial identisch...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren