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
PWM springt bei einem bestimmten Wert auf High
16.10.2019, 18:23
Beitrag #17
RE: PWM springt bei einem bestimmten Wert auf High
Hallo MicroBahner,

ich hab Deinen Code jetzt ausprobiert und hab´s natürlich nicht hinbekommen. Die Arduino IDE bringt mir immer "Fehler beim Kompilieren". Hier der ganze Fehlertext.

main.cpp: (.text.startup.main+0x8): undefined reference to `setup'

collect2.exe: error: ld returned 1 exit status

exit status 1
Fehler beim Kompilieren.

Und hier der ganze Sketch.
Code:
void setPWM9 (int val) {
  pinMode( 9 , OUTPUT);
  if (val == 0)
  {
    digitalWrite( 9, LOW);
  }
  else if (val == 1023)
  {
    digitalWrite( 9, HIGH);
  }
  else
  {
    TCCR1A |= _BV(COM1A1);
    OCR1A = val; // set pwm duty
  }
}

void loop()
{
  analogWrite(9 , analogRead(0));
}

Da ich hier mit meinem Latein am Ende bin, hab ich die Methode mit dem Überschreiben des Ausgangwertes 255 auf 256 ausprobiert. Ist vielleicht nicht die eleganteste Methode, funktioniert aber wunderbar und ist für mich auch nachvollziehbar. Und den kleinen Sprung merkt man gar nicht. Werde es künftig immer so machen.
Trotzdem nochmals vielen Dank. Ohne Deine Hilfe wäre ich womöglich zu keiner Lösung gekommen.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2019, 22:00 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2019 22:02 von MicroBahner.)
Beitrag #18
RE: PWM springt bei einem bestimmten Wert auf High
Hmm, da scheinen doch noch ein paar Grundlagen zu fehlen ...
Die Funktion war als Ersatz für das analogWrite gedacht, der Rest des Sketches sollte so bleiben wie er war:

Code:
void setPWM9 (int val) {
  pinMode( 9 , OUTPUT);
  if (val == 0)
  {
    digitalWrite( 9, LOW);
  }
  else if (val == 1023)
  {
    digitalWrite( 9, HIGH);
  }
  else
  {
    TCCR1A |= _BV(COM1A1);
    OCR1A = val; // set pwm duty
  }
}

void setup()
{
  TCCR1A = B00000011; //Auflösung 1023
  TCCR1B = B00001001; //Frequenz 15600Hz
}

void loop()
{
  setPWM9(analogRead(0));
  delay(10);
}

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2019, 22:31
Beitrag #19
RE: PWM springt bei einem bestimmten Wert auf High
(16.10.2019 22:00)MicroBahner schrieb:  Hmm, da scheinen doch noch ein paar Grundlagen zu fehlen ...

Oh ja, das trifft allerdings zu. Irgendwie ist das alles ein Buch mit sieben Siegeln. Deshalb benutze ich auch zum programmieren Ardublock. Das ist mit meiner Logik irgendwie kompatibel. Nur leider wird man bei dessen Funktionsumfang auch in gewisse Grenzen verwiesen. Oder ich hab noch nicht alle Möglichkeiten entdeckt.
Ich werde Deinen Sketch abspeichern, bestimmt kann ich ihn nochmal gebrauchen. Vorerst ist mir die Lösung mit dem Überschreiben aber funktionaler und vorallem verständlicher. Viele Wege führen halt nach Rom.

Vielen Dank und schöne Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Den Wert eines PWM Pins auslesen - was mache ich falsch? Gelegenheitsbastler 8 312 25.11.2019 10:49
Letzter Beitrag: MicroBahner
  SD-Karte Ersten und Letzten wert anzeigen Luis90 1 171 12.11.2019 12:23
Letzter Beitrag: Tommy56
Information Arduino Wert mit Drucktaster hochzählen und berechnen Pauli33_student 4 236 07.11.2019 21:35
Letzter Beitrag: Tommy56
  wie kann ich ausgangspins aus einem array steuern? uwe.z 4 284 04.11.2019 21:46
Letzter Beitrag: Holzauge
  Werte in Arduino mittels Drucktaster eingeben und mittels Formel Wert berechnen Pauli33_student 5 284 04.11.2019 13:20
Letzter Beitrag: Peter_hno3
  Wenn pin high dann anderen pin kurz aktivieren Prospekteur 16 1.285 15.10.2019 14:18
Letzter Beitrag: Tommy56
  Wert von einem Arduino zu einem zweiten Arduino senden Thorsten_S 9 714 14.10.2019 14:48
Letzter Beitrag: Thorsten_S
  Servo in einem Bereich bewegen koksi_92 5 363 08.10.2019 11:28
Letzter Beitrag: MicroBahner
  Aktivierung nur in einer bestimmten Zeit Prospekteur 48 2.392 14.09.2019 12:57
Letzter Beitrag: MicroBahner
  Mehrere HX711 mit einem Arduino Uno be14b029 8 4.403 16.03.2019 18:22
Letzter Beitrag: charlie883

Gehe zu:


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