Aaah, das W war's.
Wäre ich nicht drauf gekommen*SCHÄM*
Aaah, das W war's.
Wäre ich nicht drauf gekommen*SCHÄM*
Beiträge: | 30 |
Registriert am: | 13.10.2019 |
Äh, nöö, nix geht. 08M2 und 20M2 nicht.
Beiträge: | 30 |
Registriert am: | 13.10.2019 |
Hi, es war nicht das W es war das exit do, aber egal.
Hier ist meine Version von einem Rundumlicht für einen 08M2, mit den Variablen an, aus, P_an und P_aus kann man das Verhalten verändern:
; picaxe08m2 ; automatische Compilerauswahl für Mousepad
;
symbol LED_1 = B.0
symbol LED_2 = B.1
symbol LED_3 = B.2
symbol LED_4 = C.4
symbol an = w0 ; an-Zeit der LED im Zyklus
symbol aus = w1 ; aus-Zeit der LED im Zyklus
symbol P_an = b4 ; Pause bis zum nächsten an der LED
symbol P_LED = b5 ; Pause bis zur nächsten LED
symbol i = b6 ; eine Variable für for...
;
an = 100 ; an-Zeit in us beim Absenken der Helligbekeit der LED
aus = 100 ; aus-Zeit in us beim Absenken der Helligbekeit der LED
P_an = 4 ; Zeit bis zum nächsten Absenken der Helligkeit der LED
P_LED = 40 ; Zeit bis die nächste LED an der Reihe ist
;
do
;
high LED_2
for i = an to 0 step -10
high LED_1
pauseus i
low LED_1
pauseus aus
pause P_an
next i
pause P_LED
;
high LED_3
for i = an to 0 step -10
high LED_2
pauseus i
low LED_2
pauseus aus
pause P_an
next i
pause P_LED
;
high LED_4
for i = an to 0 step -10
high LED_3
pauseus i
low LED_3
pauseus aus
pause P_an
next i
pause P_LED
;
high LED_1
for i = an to 0 step -10
high LED_4
pauseus i
low LED_4
pauseus aus
pause P_an
next i
pause P_LED
;
loop
;
Grüßle, Naubaddi
Beiträge: | 288 |
Registriert am: | 29.01.2019 |
gibts da auch ein Video zu ??
Sieht mir so ganz und garnicht ansatzweise nach einem PWM aus ...
***Lieber 2x mehr lesen , als 1x dumm fragen ***
Beiträge: | 876 |
Registriert am: | 24.01.2019 |
Dieses nervige High and Low anstatt simple 1 und 0 sagen zu können bei einer Picaxe ....
Wir wollten ja nicht die Bibel abschreiben , sondern ein kleines Rundumlicht zeigen , gelle
dirsc=%00010111
symbol LED1=c.0
symbol LED2=c.1
symbol LED3=c.2
symbol LED4=c.4
symbol W=w1
symbol Zaehler=w2
do
'--------------------
Zaehler=1
high LED2
do
for W=0 to 400
if Zaehler=W then
high LED1
endif
next W
low LED1
Zaehler=Zaehler+4
if Zaehler>=400 then
exit
end if
loop
'----------------------
Zaehler=1
high LED3
do
for W=0 to 400
if Zaehler =W then
high LED2
end if
next W
low LED2
Zaehler=Zaehler+4
if Zaehler>=400 then
exit
end if
loop
'----------------------
Zaehler=1
high LED4
do
for W=0 to 400
if Zaehler =W then
high LED3
end if
next W
low LED3
Zaehler=Zaehler+4
if Zaehler>=400 then
exit
end if
loop
'----------------------
Zaehler=1
high LED1
do
for W=0 to 400
if Zaehler =W then
high LED4
end if
next W
low LED4
Zaehler=Zaehler+4
if Zaehler>=400 then
exit
end if
loop
'----------------------
loop
end
***Lieber 2x mehr lesen , als 1x dumm fragen ***
Beiträge: | 876 |
Registriert am: | 24.01.2019 |
Ja, das mit high und low nervt mich mittlerweile auch seit ich den AVR kenne ;-).
Es ist meine Interpretation von pwm auf das Nötige reduziert , Dein Programm funktionirt nicht mit der PICAXE-Testplatine, schei... auf den blöden Simulator (ich habe keinen Simulator ). Ist wie im echten Leben, "nur Bares ist Wares!".
Grüßle, Naubaddi
Beiträge: | 288 |
Registriert am: | 29.01.2019 |
Kann man sehen wie man möchte , manchmal ist der Simulator schon recht praktisch
Auf nötigste reduziert ?
Kann man so sagen , nur mit PWM hat das so garnichts am Hut.
Is nen bissel mit Schleife spielen , jo.
Es ist problemlos machbar bei einer 08M2 mit 4 unabhängigen,
bei der 14M2 mit 10 unabhängigen ,
und der 20M2 mit 15 unabhängigen
PWM 's zu arbeiten.
Aber das geht nicht , mit einer simplen FOR ... NEXT Schleife , dazu muß man erst einmal den Sinn verstehen
***Lieber 2x mehr lesen , als 1x dumm fragen ***
Beiträge: | 876 |
Registriert am: | 24.01.2019 |
Ich hab Deinen Code mal eben auf nem Atmel gemacht ,.... cooles Lauflicht , aber auch nicht mehr .
Mit PWM hat das aber ehrlich so überhaupt nix zu tun.
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 30
$swstack = 30
$framesize = 30
Config Portb = Output
Config Portc = Output
Config Portd = Output
do
Portd.0=1:portc.5=0:waitms 150
Portb.0=1:portd.0=0:waitms 150
Portb.1=1:portb.0=0:waitms 150
Portc.5=1:portb.1=0:waitms 150
loop
***Lieber 2x mehr lesen , als 1x dumm fragen ***
Beiträge: | 876 |
Registriert am: | 24.01.2019 |
Morjen, das mein pwm funktioiert kann man sehen wenn man das Rundumlicht langsamer macht, was kann ich dafür wenn das Rundumlicht so schnell ist das es keinen Unterschied gibt zwischen pwm und dem natürlichen ausglimmen der LED? Darum die Einstellmöglichkeiten um das best mögliche Ergebnis zu erzielen.
Die Werte sind so gewählt das man gut sieht was passiert, einfach mal die Werte verstellen und sehen was passiert bzw. bis es einem gefällt.
So sieht mein pwm für einem AVR aus:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 30
$swstack = 30
$framesize = 30
' &HFF, &HE1, &HD9, &HFF ' 1MHz
$PROG &HFF, &HE4, &HD9, &HFF ' 8MHz
config portb = output
config portc = output
config portd = output
LED_1 alias portb.0
LED_2 alias portd.0
LED_3 alias portc.5
LED_4 alias portb.1
dim an as word ' an-Zeit der LED im Zyklus
dim aus as word ' aus-Zeit der LED im Zyklus
dim Z_Spanne as word ' Zeitspanne für das Absenken der Helligbekeit
dim Z_ab as word ' Zeit bis zum nächsten Absenken der Helligkeit
dim Z_LED as word ' Zeit bis die nächste LED an der Reihe ist
Z_ab = 1
Z_LED = 11
Z_Spanne = 999
do
LED_2 = 1 : waitms Z_LED
for an = Z_Spanne to 0 step -10
aus = Z_Spanne - an
LED_1 = 1 : waitus an : LED_1 = 0 : waitus aus : waitms Z_ab
next an
LED_3 = 1 : waitms Z_LED
for an = Z_Spanne to 0 step -10
aus = Z_Spanne - an
LED_2 = 1 : waitus an : LED_2 = 0 : waitus aus : waitms Z_ab
next an
LED_4 = 1 : waitms Z_LED
for an = Z_Spanne to 0 step -10
aus = Z_Spanne - an
LED_3 = 1 : waitus an : LED_3 = 0 : waitus aus : waitms Z_ab
next an
LED_1 = 1 : waitms Z_LED
for an = Z_Spanne to 0 step -10
aus = Z_Spanne - an
LED_4 = 1 : waitus an : LED_4 = 0 : waitus aus : waitms Z_ab
next an
loop
Grüßle, Naubaddi
Beiträge: | 288 |
Registriert am: | 29.01.2019 |
Ich sag mal so ....
es sieht sehr gut aus.
Als Rundumlicht auch ziemlich gut einsetzbar.
Nur, .... mit PWM wie gesagt hat das wenig zu tun , mehr so mit ausglimmen.
Ich glaub , viele Wissen wohl noch nicht wie so ein PWM überhaupt funktionuiert ?
Ne simple Schleife runter oder rauf laufen lassen , is noch kein PWM , lediglich .... nen Ausblenden.
Aber wie gesagt , hier fürn Rundumlicht reicht es alle mal
***Lieber 2x mehr lesen , als 1x dumm fragen ***
Beiträge: | 876 |
Registriert am: | 24.01.2019 |
Es ist meine Interpretation für ein pwm, was pwm ist und wie es funktioniert weiß ich.
PWM:
* in einer Zeitspanne X gibt es eine Zeitspanne Y
* Beispiel: X = 500, Y = 200 ergibt eine Einzeit von 200 in der Gesamtzeit 500
also nix Weltbewegendes, ;-).
Du weißt das und ich weiß das, es hört sich alles nur so kompliziert an weil englische Kürzel, Beschreibungen..., und englisch ist nicht mein Ding.
Also glaube einfach mal Andere wissen auch einiges.
Egal, hier ist noch eine zusätzliche Hardware-Lösung für einen Schliereneffekt: Papier vor die LEDs:
Beiträge: | 288 |
Registriert am: | 29.01.2019 |
Für einen 08M2 sieht es fast genauso aus wie für einen AVR, und es funktioniert auch wie beim AVR.
Einfach die Variablen Z_ab, Z_LED und Z_Spanne anpassen bis es einem gefällt:
; picaxe08m2 ; automatische Compilerauswahl für gedit
symbol LED_1 = B.0
symbol LED_2 = B.1
symbol LED_3 = B.2
symbol LED_4 = C.4
symbol an = w1 ' an-Zeit der LED im Zyklus
symbol aus = w2 ' aus-Zeit der LED im Zyklus
symbol Z_Spanne = w3 ' Zeitspanne für das Absenken der Helligbekeit
symbol Z_ab = w4 ' Zeit bis zum nächsten Absenken der Helligkeit
symbol Z_LED = w5 ' Zeit bis die nächste LED an der Reihe ist
Z_ab = 1 ' schneller = 0
Z_LED = 2 ' schneller = 1
Z_Spanne = 333 ' schneller = 111
do
high LED_2 : pause Z_LED
for an = Z_Spanne to 0 step -10
aus = Z_Spanne - an
high LED_1 : pauseus an : low LED_1 : pauseus aus : pause Z_ab
next an
high LED_3 : pause Z_LED
for an = Z_Spanne to 0 step -10
aus = Z_Spanne - an
high LED_2 : pauseus an : low LED_2 : pauseus aus : pause Z_ab
next an
high LED_4 : pause Z_LED
for an = Z_Spanne to 0 step -10
aus = Z_Spanne - an
high LED_3 : pauseus an : low LED_3 : pauseus aus : pause Z_ab
next an
high LED_1 : pause Z_LED
for an = Z_Spanne to 0 step -10
aus = Z_Spanne - an
high LED_4 : pauseus an : low LED_4 : pauseus aus : pause Z_ab
next an
loop
Grüßle, Naubaddi
Beiträge: | 288 |
Registriert am: | 29.01.2019 |
und weil es bei #33 schon lange geschrieben stand ,
wiederholen wir das nochmal bei #40
Jo , macht Sinn ....
***Lieber 2x mehr lesen , als 1x dumm fragen ***
Beiträge: | 876 |
Registriert am: | 24.01.2019 |
Mit dem Unterschied:
#40 läuft (bis auf die Pinbezeichnung), #33 nicht
Gruß Karlsson
Beiträge: | 30 |
Registriert am: | 13.10.2019 |
Morjen, jetzt verstehe ich was die for... Schleifen machen sollen, ein pwm von Hand ;-). Und ich dachte die LED sollte nach glimmen und so einen Schweif hinter sich herziehen .
Bemerkungen und Kurzgeschichten habe ich mal weggelassen ;-).
O.K. dann mal ein ganz einfaches kurzes pwm Programmm (bitte mit den Werten spielen bis es gefällt):
; picaxe08m2 ; automatische Compilerauswahl für meine Skripte "1 kontrollieren" und "2 speichern"
dirsc=%00010111
symbol LED1 = c.0
symbol LED2 = c.1
symbol LED3 = c.2
symbol LED4 = c.4
symbol upm = w1
symbol an = w2
symbol aus = w3
symbol i = w4
an = 1
upm = 111 ' die Geschwindigkeit des Rundumlichts
aus = 888 ' die Helligkeit der vorigen LED größer = dunkler
do
high LED2
for i = 0 to upm
high LED1 : pauseus an : low LED1 : pauseus aus
next i
high LED3
for i = 0 to upm
high LED2 : pauseus an : low LED2 : pauseus aus
next i
high LED4
for i = 0 to upm
high LED3 : pauseus an : low LED3 : pauseus aus
next i
high LED1
for i = 0 to upm
high LED4 : pauseus an : low LED4 : pauseus aus
next i
loop
end
Grüßle, Naubaddi
Beiträge: | 288 |
Registriert am: | 29.01.2019 |
unter Soft-PWM versteht man zwar ,
3 - 5 - 8 - 10 - 15 - 20 Stk unabhängige PWM Kanäle per Software .....
(da Hardwaremäßig meist nur 2-3 max zur Verfügung stehen )
***Lieber 2x mehr lesen , als 1x dumm fragen ***
Beiträge: | 876 |
Registriert am: | 24.01.2019 |
Zitat von BoomBoomMagic im Beitrag #46
...wenn des auch noch nicht jeder so ganz verstanden hat , doch schon mal lustig das man e i n e n "PWM" halbwegs hinbekommen hat
Da ich die vergeblichen Versuche hier sehe , ist das Thema doch noch ein bissel zu schwer derzeit...
Beiträge: | 288 |
Registriert am: | 29.01.2019 |
Und hier ganz einfach erklärt:
pwm , x , y , z
* x ist der der pwm bekommt
* y ist die gesamte Zeitspanne
* z so lang ist Spannung in y
pwm c.2 , 10 , 3 bedeutet in 10 Zeiteinheiten gibt es 3 Zeiteinheiten die Spannung liefern und 7 Zeiteinheiten die keine Spannung liefern!
---> 1,2,3 <--- Spannung --> 4,5,6,7,8,9,10 <--- keine Spannung!
Ob Du nun 2 3 oder100 pwm per Software machst und x LEDs blinken lässt ändert das nix an pwm!
Wie war das noch mal mit dem Ars... in der Hose?
Grüßle, Naubaddi
Beiträge: | 288 |
Registriert am: | 29.01.2019 |
Für Naubaddi:
Es gibt halt noch nicht viel zu sehen.
Soweit der Plan.
Mein "Testaufbau"
Nur ein Genie überblickt das Chaos :-)
Hier soll's irgendwann mal leuchten
Schaun wa mal....
Beiträge: | 30 |
Registriert am: | 13.10.2019 |
Ohne Nachleuchten.
Beiträge: | 30 |
Registriert am: | 13.10.2019 |
Picaxe Editor 5.5.5 | Download |
Update auf Picaxe Editor 5.5.6 | Download |
Picaxe Editor 6.x.x.x | Download |
Manual1.pdf - Grundwissen | Download |
Manual2.pdf - Befehle | Download |
Manual3.pdf - Beispiele | Download |
Forum Software ©Xobor.de | Forum erstellen |