Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück


Rechteckgenerator auf Tastendruck

#1 von harry02 , 31.12.2020 17:52

Hallo liebe Picaxe-Freunde
Im alten Jahr muss ich doch noch etwas los werden.

Nachdem es mir nun endlich nach vielen Versuchen gelungen ist, den AXE027-Treiber auf meinem Windows10-Rechner zum Laufen zu bringen, wollte ich endlich mal wieder etwas Programmieren. Herausgekommen ist ein weiterer Rechteckgenerator, mit dem man mit nur 2 Tasten und einem dynamischen Programm viele Frequenzen erzeugen kann.

Aber bitte wegen dem Programn nicht lachen. Es gibt sicher noch einfachere Möglichkeiten, so etwas zu programmieren. Ich fand es jedenfalls gut, wenn man mit einer Taste innerhalb einer gewissen Zeit (count = 5000, also 5 Sekunden) zu bestimmten Frequenzen springen kann. Das Programm funktioniert soweit so gut. Was ich aber nicht verstehe ist, wenn ich aus der do - loop - Schleife mit Pinc.1 zurück zu main springe, dass dann am Pinc.2 immer noch 100 Hz anliegen. Ich komme einfach nicht dahinter, wie man das PWMout wieder abstellen kann. Vielleicht gibt es da einen einfachen Befehl.

Das wars für heute wieder mal. Ich wünsche allen einen guten Rutsch ins Neue Jahr, und hoffe, dass es bald wieder mehr Projekte in diesem Forum gibt.

Grüße Harry

Und hier ist das Programm


'Rechteckgenerator mit festen Werten
#pixaxe 08m2

main:
b0 = 0
pinc.1 = 0

do
loop until pinc.1 = 1

high c.0
pause 100
count c.3,5000,b0
low c.0

if b0 = 1 then
goto frequenz1
endif

if b0 = 2 then
goto frequenz2
endif

if b0 = 3 then
goto frequenz3
endif

if b0 = 4 then
goto frequenz4
endif

if b0 = 5 then
goto frequenz5
endif

frequenz1:
do
pwmout pwmdiv64, C.2, 155, 311 '100 Hertz
loop until pinc.1 = 1
goto main

frequenz2:
do
pwmout pwmdiv16, C.2, 124, 249 '500 Hertz
loop until pinc.1 = 1
goto main

frequenz3:
do
pwmout pwmdiv4, C.2, 249, 499 '1 Khz
loop until pinc.1 = 1
goto main

frequenz4:
do
pwmout C.2, 199, 399 '5 Khz
loop until pinc.1 = 1
goto main

frequenz5:
do
pwmout C.2, 99, 199 '10 Khz
loop until pinc.1 = 1
goto main

harry02  
harry02
Beiträge: 45
Registriert am: 16.02.2019


RE: Rechteckgenerator auf Tastendruck

#2 von Sunrisesailing , 01.01.2021 16:25

Hallo harry,

von mir auch eine frohes, gesundes neues Jahr.
Ich bin ja auch nur Programmierlehrling, aber ich versuche es trotzdem mal vor den Profis meinen Senf dazuzugeben.
In deinem Programm vermisse ich den Befehl C.2 wieder auf null zu setzen bevor du mit "goto main" ins Hauptprogramm zurückspringst? Frage ist ja, soll z.B. 100 Hz ausgegeben werden bis ein neuer Befehl kommt, oder soll 100 Hz eine bestimmte Zeit anliegen und dann in den Grundzustand gehen?


-------------------------------------
Viele Grüße aus Havixbeck

Sunrisesailing  
Sunrisesailing
Beiträge: 50
Registriert am: 09.02.2019


RE: Rechteckgenerator auf Tastendruck

#3 von harry02 , 01.01.2021 18:19

Hallo Sunrisesailing,
Danke für Deine Hilfe.

Das mit c.2 auf Null setzen habe ich schon probiert. Es hat aber nichts geändert. Die Idee war ja, wenn ich die Taste von c.1 drücke, dass dann aus der jeweiligen Schleife raus und zum Anfang gesprungen wird. Seltsamerweise geht das auch, aber die 100 Hz bleiben erhalten. Nun habe ich mit überlegt, dass ich nach "main" c.2 kurz blinken lasse. Vielleicht wird dann pwmout gestoppt. Ich werde das später mal probieren und dann über das Ergebnis berichten.
Grüße Harry

harry02  
harry02
Beiträge: 45
Registriert am: 16.02.2019


RE: Rechteckgenerator auf Tastendruck

#4 von harry02 , 02.01.2021 13:36

Ich habe die Lösung gefunden.
Man kann pwmout wieder abschalten, indem man eingibt "pwmout c.2, 0, 0".
Habe diesen Zeilen nach Main eingefügt und noch ein Pause von 1 Sek. eingefügt. Nun funktioniert alles wie gewünscht.
Das sieht dann so aus:

'Rechteckgenerator mit festen Werten

main:
b0 = 0
pinc.1 = 0
pause 1000
pwmout c.2, 0, 0
do
loop until pinc.1 = 1

high c.0
pause 100
count c.3,5000,b0
low c.0

Grüße Harry

So nebenbei ist mir bei der Programmentwicklung noch ein Problem aufgetreten, das mich lange beschäftigt hat. Die Variable "b0" wollte keine Werte speichern. Ich war schon fast am verzweifeln. Dann habe ich eine andere Picaxe genommen, und siehe da, b0 war wieder normal. Anscheinend war da ein Speicher defekt.

harry02  
harry02
Beiträge: 45
Registriert am: 16.02.2019


RE: Rechteckgenerator auf Tastendruck

#5 von Sunrisesailing , 03.01.2021 12:54

Hallo Harry,

wie verzweigt das Programm mit einem Schalter in weitere Frequenzen (1,2,3,...) bzw. Unterprogramme und wie stellst du fest, ob am Ausgang 100 oder 1500 Hz ausgegeben werden?


-------------------------------------
Viele Grüße aus Havixbeck

Sunrisesailing  
Sunrisesailing
Beiträge: 50
Registriert am: 09.02.2019


RE: Rechteckgenerator auf Tastendruck

#6 von harry02 , 03.01.2021 13:31

Hallo Sunrisesailing,

mit einem Taster an Pinc.1 wird das Programm gestartet. An Pinc.3 habe ich einen einfachen Drucktaster angebracht. Am Ausgang c.0 hängt eine LED, die so lange leuchtet, wie Count geöffnet ist. In meinem Beispiel sind das 5 Sekunden. Innerhalb der 5 Sekunden drücke ich dann den Taster an Pinc.3 so oft, bis ich die gewünschte Frequenz habe. Einmal, dreimal oder mehr. Mit einem Oszyloskop an Pinc.2 habe ich die Frequenz gemessen.

Eigendlich war das Programm nur so eine Spielerei. Wenn man aber mal schnell eine bestimmte Frequenz braucht, kann man das Programm dementsprechend ändern, oder auf weitere Frequenzen erweitern. Der Taster an Pinc.3 sollte mit einer kleinen Entprellschaltung ausgestattet werden. Auch könnte man einen einfachen Zähler mit einer 7-Segment-Anzeige an den Taster anschließen, um die Tastendrücke optisch dazustellen. Aber das wäre dann schon wieder Luxus für so eine einfache Schaltung.

harry02  
harry02
Beiträge: 45
Registriert am: 16.02.2019


RE: Rechteckgenerator auf Tastendruck

#7 von BoomBoomMagic , 03.01.2021 18:04

Euch allen auch ein frohes neues Jahr !


Wie Du schon erkannt hast , schön geht anders.
Ob es dann luxus wäre ... auf jedenfall ordentlich .

Aber da Du es so hinbekommen hast , will ich mal meinen ' Senf ' nicht dazu geben.
Ich habe eine andere Art zu programmieren und die ist NICHT unbedingt = dem Deine scheints ;-)

Es hält sich hier ja auch noch äußerst in Grenzen mit der Anforderung, von daher mach ich mal beim Code beide Augen zu


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


RE: Rechteckgenerator auf Tastendruck

#8 von BoomBoomMagic , 03.01.2021 18:14

Kleiner TIP !!

Es gibt hier auch die DEUTSCHE ÜBERSETZUNG ----> http://picaxe.byethost10.com/befehle/index.html

Vll. da mal unter : PWMOUT gucken


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 879
Registriert am: 24.01.2019


   

Variablen-Liste in PE6 dauerhaft einklappen
Seltsames Verhalten des 20m2

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


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz