Forum: Mikrocontroller und Digitale Elektronik STM32F103C8 PWM Write "verhindert" digital Read an unterschiedlichen Pins


von Peter H. (borntopizza)


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
  }

von pegel (Gast)


Lesenswert?

Peter H. schrieb:
> über pwmWrite das PWM Signal erzeuge

Da hilft wohl nur das mysteriöse pwmWrite im Quelltext anzuschauen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.