Moin, ich habe dieses Tutorial gefunden: [[https://www.mikrocontroller.net/articles/Soft-PWM#Intelligenter_L.C3.B6sungsansatz]] Da ich an einem MSP430G2553 3 P-Channel Mosfets betreiben will muss das Signal invertiert sein. Da bitwise operators nicht meine Stärke sind bräuchte ich ein wenig hilfe:-( Ich habe es schon selber versucht, habe dann aber nach 2 std aufgegeben:D lg Chris
:
Bearbeitet durch User
Hallo, vielleicht kannst Du durch intensive Analyse des Programms etwas abschauen : Beitrag "noch ein AVR Moodlight" MfG
Chris D. schrieb: > Moin, > > ich habe dieses Tutorial gefunden: > [[https://www.mikrocontroller.net/articles/Soft-PWM#Intelligenter_L.C3.B6sungsansatz]] > > Da ich an einem MSP430G2553 3 P-Channel Mosfets betreiben will muss das > Signal invertiert sein. > > Da bitwise operators nicht meine Stärke sind bräuchte ich ein wenig > hilfe:-( > > Ich habe es schon selber versucht, habe dann aber nach 2 std > aufgegeben:D Bist du ein Troll oder wirklich so dämlich?
1 | // invertierte PWM
|
2 | |
3 | if (pwm_cnt == 0) { |
4 | PWM_PORT = ~tmp; // Ports löschen zu Begin der PWM |
5 | // zusätzliche PWM-Ports hier setzen
|
6 | pwm_cnt++; |
7 | }
|
8 | else { |
9 | PWM_PORT |= ~tmp; // Ports setzen |
10 | // zusätzliche PWM-Ports hier setzen
|
11 | if (pwm_cnt == pwm_cnt_max) { |
12 | pwm_sync = 1; // Update jetzt möglich |
13 | pwm_cnt = 0; |
14 | }
|
15 | else pwm_cnt++; |
16 | }
|
Aus PWM_PORT = tmp; wird PWM_PORT = ~tmp; und aus PWM_PORT &= tmp; wird PWM_PORT |= ~tmp;
Also: wenn du mich als dämlich beizeichnen willst dann lass uns das doch persönlich klären mann könnte sich zb. treffen und dann kann ich dir das genau zeigen;-) Ich habe nur nach hilfe gefragt da ich mit bitwise zeugs noch nicht wirklich zutun hatte. Trotzdem danke.
Chris D. schrieb: > wenn du mich als dämlich beizeichnen willst dann lass uns das doch > persönlich klären mann könnte sich zb. treffen und dann kann ich dir das > genau zeigen;-) Ahem. Und wenn du es ihm genau zeigst, heißt das automatisch, daß du nicht dämlich bist? P.S. Deine Frage hat ungefähr so viel Sinn wie: Ich habe gelernt wie ich eine LED einschalten kann, aber wie mache ich das verdammte Ding wieder aus ?
:
Bearbeitet durch User
Chris D. schrieb: > hmm das ist hardcoded auf 8mHz:-( Tja mein lieber Chris, man sollte schon mal die Augen aufmachen. Was glaubst du, was diese Zeilen hier bedeuten?
1 | // Defines an den Controller und die Anwendung anpassen
|
2 | |
3 | #define F_CPU 8000000L // Systemtakt in Hz
|
4 | #define F_PWM 100L // PWM-Frequenz in Hz
|
5 | #define PWM_PRESCALER 8 // Vorteiler für den Timer
|
6 | #define PWM_STEPS 256 // PWM-Schritte pro Zyklus(1..256)
|
7 | #define PWM_PORT PORTB // Port für PWM
|
8 | #define PWM_DDR DDRB // Datenrichtungsregister für PWM
|
9 | #define PWM_CHANNELS 8 // Anzahl der PWM-Kanäle
|
10 | |
11 | // ab hier nichts ändern, wird alles berechnet
|
12 | |
13 | #define T_PWM (F_CPU/(PWM_PRESCALER*F_PWM*PWM_STEPS)) // Systemtakte pro PWM-Takt
|
14 | //#define T_PWM 1 //TEST
|
15 | |
16 | #if ((T_PWM*PWM_PRESCALER)<(111+5))
|
17 | #error T_PWM zu klein, F_CPU muss vergrössert werden oder F_PWM oder PWM_STEPS verkleinert werden
|
18 | #endif
|
19 | |
20 | #if ((T_PWM*PWM_STEPS)>65535)
|
21 | #error Periodendauer der PWM zu gross! F_PWM oder PWM_PRESCALER erhöhen.
|
22 | #endif
|
Vielleicht solltest du dich noch eine GEHÖRIGE Weile mit den wenn gleich etwas schnöden Grundlagen von C beschäftigen, bevor du die großen, glamourösen Projekte angehst. Ein Flugkaptän, der nicht mal weiß was Knoten und Meilen sind, ist irgendwie peinlich.
Chris D. schrieb: > Da ich an einem MSP430G2553 3 P-Channel Mosfets betreiben will muss das > Signal invertiert sein. Die einfachste Methode wäre evtl. im Geiste die PWM Werte einfach anders herum zu verwenden. 0 wäre dann die hellste Stufe, 255 die dunkelste. Dann brauchst du bezügl. der Investierung am Programm gar nichts ändern.
Es ist immer die selbe Leier wenn man nicht 100% alles weiß und mal eine Frage stellt... ich habe nicht nach einer Antwort ohne Erklärung gefragt... Naja und bekommen habe ich Hohn und Spott. Hätte ich nach Bananen und Äpfeln gefragt würde ich das ganze ja verstehen aber gleich als dämlich bezeichnet zu werden... Da bekomme ich richtigen Hass!
Ja sry dich habe ich natürlich nicht damit gemeint:-) Achja habe eben festgestellt das die antwort von Falk nicht richtig ist... aus 00000XXX wird 11111XXX er stellt mir die nicht pwm pins auch um..
möchte mir jetzt einer helfen... https://www.mikrocontroller.net/articles/Soft-PWM soll nur mit 3 kanälen auf einem port laufen und mir nicht die andere pins auch umstellen... die invertierung ignoriere ich mittlerweile... lg
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.