Programm zu langgsam
|
01.01.2020, 13:13
(Dieser Beitrag wurde zuletzt bearbeitet: 01.01.2020 13:13 von Gerdchen03.)
Beitrag #1
|
|||
|
|||
Programm zu langgsam
Ich baue gerade ein Anzeigeinstrument, dass das Steigen eines Segelflugzeugs über ein Display darstellen soll, aber auch gleichzeitig ein akustisches Signal ausgibt. Die Anzeige über das Display ist soweit fertig, und die Tonausgabe eigentlich auch. Aber ich habe das Problem wohl nicht optimal gelöst, denn die Tonausgabe hängt dem Display in etwa 2 Sekunden hinterher. Für das Display und für die Tonausgabe nutze ich zwei separate ESP32 Devkit V1.
Ich nehme nicht an, dass sich dieser Code deutlich beschleunigen lässt. Falls doch jemand Tips hat, wäre ich sehr dankbar. Besser wäre es wahrscheinlich den Ton komplett anders zu generieren. Da wäre ich ebenfalls für Tips extrem dankbar. Code: //#define RXD1 -1 |
|||
01.01.2020, 23:42
Beitrag #2
|
|||
|
|||
RE: Programm zu langgsam
(01.01.2020 13:13)Gerdchen03 schrieb: Ich baue gerade ein Anzeigeinstrument, dass das Steigen eines Segelflugzeugs über ein Display darstellen soll, aber auch gleichzeitig ein akustisches Signal ausgibt. Die Anzeige über das Display ist soweit fertig, und die Tonausgabe eigentlich auch. Aber ich habe das Problem wohl nicht optimal gelöst, denn die Tonausgabe hängt dem Display in etwa 2 Sekunden hinterher. Für das Display und für die Tonausgabe nutze ich zwei separate ESP32 Devkit V1. ...also wenn ich deinen Code so überfliege dann sehe ich alleine schon 3 delay() Aufrufe mit zusammen mindestens 450mS... also wenn das den Algorhytmus nicht runterbremst dann wäre das ein Wunder... An alle Neuankömmlinge hier, wenn ihr Code(Sketch) hier posten wollte dann liest euch bitte diese Anleitung durch. 1+1 = 10 ![]() ![]() |
|||
02.01.2020, 00:30
Beitrag #3
|
|||
|
|||
RE: Programm zu langgsam
Der letzte Delay (400ms) kommt nur zum Tragen, wenn eine Fehlermeldung kommt. Dann funktioniert das Gerät eh nicht. Ich habe heute noch ein wenig experimentiert, und denke, es hängt mit diesem Delay zusammen:
Code: if ((E > 0) && (E <= 8) && (E != Ealt)) { Dieses Delay wurde eingebaut damit der Ton Unterbrechungen hat. Hier in diesem Video könnt ihr euch anschauen, wie so ein Vario klingen soll: https://www.youtube.com/watch?v=uwpnXf916gM Ich bin nicht sicher, ob ich richtig verstanden habe, was die Parameter Channel, Resolution und dutycycle bei diesen Befehlen in meinem Fall bewirken. Vielleicht könnet da noch mal jemand eine kurze Erklärung geben. Code: ledcSetup(channel, freq, resolution); Eine Tonunterbrechnung ist damit nicht realisierbar, oder? |
|||
03.01.2020, 16:47
Beitrag #4
|
|||
|
|||
RE: Programm zu langgsam
delay() hat den Effekt, die ganze Task komplett anzuhalten. Entweder verlegst Du die Tonerzeugung in eine eigene Task, oder du verzichtest auf das delay() und benutzt lieber Timer, um Beginn und Ende der Huperei zu steuern. Im Prinzip z.B. so (das ist ungetestet und sollte den Ton im Wechsel 500ms an und 250ms aus steuern):
Code: ... |
|||
|
|
Möglicherweise verwandte Themen... | |||||
Thema: | Verfasser | Antworten: | Ansichten: | Letzter Beitrag | |
ESP8266 Programm richtig zusammen fassen | sams2018 | 6 | 2.138 |
27.05.2019 11:39 Letzter Beitrag: Tommy56 |
|
WiFi Zugangsdaten und Programm Settings einstellen und ändern | DanceNgine | 2 | 2.643 |
13.08.2018 21:19 Letzter Beitrag: DanceNgine |
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste