Go Down

Topic: PWM Port invertieren (Read 999 times) previous topic - next topic

acoolio

Hallo,

habe ein Problem.
Ich möchte gerne von meinem Pin 3 den PWM Wert invertieren d.h bei Wert 255=0V und bei 0=5V.

Habe in den Datenblätter des Chips nachgeschaut und folgendes eingegeben:TCCR2A |= (1<<COM2A1) | (1<<COM2A0);

aber leider ändert sich nichts.
Kann mir einer sagen was ich falsch mache?

Vielen Dank und LG

Kenny_ken

Vielleicht liege ich falsch, aber soweit ich weiß ist das softwaretechnisch nicht möglich, oder?

Wie gesagt, es kann sein dass ich mich irre...

MfG
If Chuck Norris sees a Antilope driving a car, it's NOT Chuck Testa.

sth77

Mir ist das auch nicht geläufig, dass man das in den Registern umschalten kann. In dem Fall würde ich eine kleine Funktion schreiben, ist jetzt rein exemplarisch:

Code: [Select]

byte invert (byte z) {
  z=255-z;
  return z;
}


Dann ruft man einfach analogWrite(invert(zahl)); auf.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

acoolio

Hallo das ging ja schnell.
Das könnte funktionieren, werde es später gleich mal ausprobieren.

Vielen dank erstmal

uwefed

Auch würde einfach den Wert umrechnen und normal über AnalogWrite() ausgeben ohne mich weiter in die Registerprogrammierung der Timer zu vertiefen.
Grüße Uwe

acoolio

Hallo, komme doch nicht weiter. Vielleicht hat jemand eine Idee wie ich meinen momentanen Code ändern kann damit ich vernüftig die Werte im Display angezeigt bekomme.

Also ich habe meine bytes die ich in 15 min Schritten einstellen kann in die Formel eigearbeitet:

inputVariable*100/255;

d.h bei den Wert 255 habe ich im Display  100% stehen.
      bei den Wert 0    habe ich 0% stehen.
das war soweit i.O.

Jetzt habe ich eine Buck Konstantstromquelle dazwischen geschaltet und die LED Beleuchtung ist bei  dem  Wert 255 aus ( halt invertiert) im Display wird aber 100% angezeigt, somit hatte ich gedacht ich invertiere den Port und alles ist gut.
Oder hat kennt jemand  evtl.ein Code wie man ein Balken anzeigen lassen kann ( vom Wert:255 -->0 zunehmender Balken).


uwefed

wie sth77 bereits sagte:

Code: [Select]
pwmwert    //von 255 bis 0
percent      // von 0% bis 100%

percent = 100 - pwmwert*100/255
oder
percent = (255-pwmwert)*100/255

Grüße Uwe

Go Up