Pages: [1]   Go Down
Author Topic: PWM Port invertieren  (Read 976 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Germany
Offline Offline
Newbie
*
Karma: 1
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

Germany
Offline Offline
Edison Member
*
Karma: 48
Posts: 2343
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
byte invert (byte z) {
  z=255-z;
  return z;
}

Dann ruft man einfach analogWrite(invert(zahl)); auf.
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Vielen dank erstmal
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21939
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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).

Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21939
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

wie sth77 bereits sagte:

Code:
pwmwert    //von 255 bis 0
percent      // von 0% bis 100%

percent = 100 - pwmwert*100/255
oder
percent = (255-pwmwert)*100/255
Grüße Uwe
Logged

Pages: [1]   Go Up
Jump to: