Forum: Mikrocontroller und Digitale Elektronik ATMega328 crasht mit IR lib und analogwrite


von Philipp G. (geiserp01)


Lesenswert?

Ich verwende die folgende Lib an einem Arduino Uno / ATMega328:

https://github.com/z3t0/Arduino-IRremote

Beim Versuch, PWM mittels analogwrite auszugeben stelle ich das folgende 
Verhalten fest. Pinbelegung gemäss Arduino Uno

- IRlib verwendet Pin 13
- Pin 6/9/10 geben PWM aus
- Beim Versuch, auf Pin3 oder Pin11 PWM auszugeben crasht der 
Controller. Das erklärt sich weil sie auf denselben Timer zugreifen
- Pin 5 geht nicht mehr

Das passiert nur, solange die lib inkludiert ist. Sonst funktionieren 
alle Pins mit PWM.

Die lib verwendet soweit ich das sehen konnte Timer2. Die anderen beiden 
Timer stehen noch für PWM zur Verfügung. Hat jemand eine Erklärung warum 
Pin5 kein PWM mehr ausgibt?

von MaWin (Gast)


Lesenswert?

Eben. Die vorgefertigten libs verwenden irgendwelche Resourcen und 
können kollidieren.
Es bleibt dir nichts anderes übrig, als richtig Programmieren zu lernen, 
weg vom Arduino-Lego.
Oder dir zumindest die Imlementation der Arduino-lib-Funktionen 
anzugucken, denn dokumentiert ist da ja fast nichts, die Doku kann man 
eher als Geheimhaltungsvereinbarung lesen.

von Philipp G. (geiserp01)


Lesenswert?

MaWin schrieb:
> Eben. Die vorgefertigten libs verwenden irgendwelche Resourcen und
> können kollidieren.
> Es bleibt dir nichts anderes übrig, als richtig Programmieren zu lernen,
> weg vom Arduino-Lego.
> Oder dir zumindest die Imlementation der Arduino-lib-Funktionen
> anzugucken, denn dokumentiert ist da ja fast nichts, die Doku kann man
> eher als Geheimhaltungsvereinbarung lesen.

Danke mawin.

Rein theoretisch: Wieviele Pins könnten mit PWM arbeiten unter der 
Voraussetzung, das ein Timer für IR reserviert ist (ohne I2C Bus 
Geschichten).

von guest (Gast)


Lesenswert?

Wird nicht bei Arduino standartmäßig der Timer 0 für millis() 
hergenommen ?

von chulio (Gast)


Lesenswert?

guest schrieb:
> Wird nicht bei Arduino standartmäßig der Timer 0 für millis()
> hergenommen ?

Was willst du uns damit in Bezug auf das Topic sagen?

von MaWin (Gast)


Lesenswert?

Philipp G. schrieb:
> Wieviele Pins könnten mit PWM arbeiten unter der Voraussetzung, das ein
> Timer für IR reserviert ist

Alle.
Per Soft-PWM.
Aber wer weiss schon, wozu sich die lib-Funktion entscheidet.

guest schrieb:
> Wird nicht bei Arduino standartmäßig der Timer 0 für millis()
> hergenommen ?

Natürlich. Immer initialisiert.

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.