STM32F103C8 PWM Write "verhindert" digital Read an unterschiedlichen Pins

OP #6473603
Lesenswert?

Hallo zusammen,

ich hätte ein kleines Problemchen und zwar wollte ich mit einem STM32 
zwei digital Pins einlesen und dann darauf hin ein PWM Signal je nach 
Zustand der Pins erzeugen.

Was mich jetzt irgendwie verwirrt ist, dass das PWM Signal über die 
Funktion analogWrite ganz normal erzeugt wird, wenn ich jedoch über 
pwmWrite das PWM Signal erzeuge, werden die digital Pins nicht mehr 
eingelesen.

Meine 2 Output Pins für das PWM Signal sind PB0 und PB1, meine 2 Input 
Pins sind PA0 und PA1.

PA0 und PA1 werden bereits nicht mehr eingelesen, wenn PB1 und PB0 als 
PWM Pins im Setup konfiguriert werden.

Ist das normal, dass das so passiert oder kann das an der Arduino 
Umgebung liegen (dass da irgendwas nicht zu 100% kompatibel ist?)?
Oder hat das Ganze irgendwelche anderen Gründe?

Danke im voraus und viele Grüße
Peter
1
int IN11;
2
int IN12;
3
int OUT11 = PB1;
4
int OUT12 = PB0;
5

6
void setup() {
7
pinMode(PA0, INPUT);
8
pinMode(PA1, INPUT);
9
IN11 = digitalRead(PA0);
10
IN12 = digitalRead(PA1);
11
pinMode(PC13, OUTPUT);
12
pinMode(PB1, PWM);    //PA0 und PA1 werden bereits nicht mehr eingelesen, wenn PB1 und PB0 als PWM Pins im Setup konfiguriert werden
13
pinMode(PB0, PWM);
14
}
15

16
void loop() {
17
  IN11 = digitalRead(PA0);
18
  IN12 = digitalRead(PA1);
19
  if (IN11 == 0 && IN12 == 0)
20
  {analogWrite(PB1, 2000);}
21
  else if (IN11 == 0 && IN12 == 1)
22
  {analogWrite(PB1, 0);}
23
  else if (IN11 == 1 && IN12 == 0)
24
  {analogWrite(PB1, 0);}
25
  }

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