Hallo,
Ich einige Tests mit einem Programm gemacht wo ich eine FB an einem
Atmega
328p betreiben kann.
Jetzt wollte ich dieses Programm in das Programm der Qlocktwo einfügen.
bis auf den void loop hat auch alles geklappt.
Allerdings funktioniert die Uhr nicht mehr nachdem ich das Programm in
den void loop einfüge Compile ist nicht das Problem.
Ich gehe davon aus das mein Programm, das Qlocktwo Programm im void loop
in einen Wartezustand versetzt und somit nicht weiter ausgeführt wird.
Allerdings ist mir das ganze Programm zu Komplex und ich bräuchte hilfe
Versuche doch als erstes einmal, ein wenig Ordnung und Struktur in deine
Gedanken und dein posting zu bekommen. Das hilft ungemein. Meist ist es
auch hilfreich, sich nen Stift und ein Blatt Papier herzunehmen und dort
zu allererst zu formulieren was man hat und dann, was man erreichen
will. Anschließend die Gedanken, die einem kommen, klar ausformulieren.
Beim zweiten oder dritten Draufschauen sieht man zumeist schon die
Lösung.
W.S.
Netiquette
Es fehlen:
- eine Angabe was GENAU du schon versucht hast, demonstriert anhand des
verwendeten Codes
- eine genaue Fehlerbeschreibung, denn "funktioniert nich mehr" ist
NICHT ausreichend!
- es gibt meines Wissens in keiner Programmiersprache eine Void-Loop ? -
um welche geht es hier also?
- "Das programm der Qlocktwo" ist auch nicht ausreichend, um eine Ahnung
zu bekommen, womit du hantierst (allein hier im Forum sind mindestens 2
Codevarianten der Qlocktwo bekannt (Nachbau Originalgröße, Nachbau als
Tischuhr) und drei zumindest der Existenz nach (Original,
Original-Tischuhr, Original Armbanduhr)
- es fehlen Punktuation, Groß-/Kleinschreibung, Grammatik
Nächstes mal durchlesen und versuchen, dein Problem nur mit Hilfe der
Angaben im Posting genau zu erfassen und überlegen, welche Informationen
deine Gegenüber wohl benötigen, ohne auf Nachfrage zu warten!
"Rest Poste ich morgen" <- das Prinzip "hauptsache ich habe den Thread
schonmal gestartet, dann schaue ich, was kommt und dann kleckere ich das
Zeugs hin, bis ich meine Lösung bekomme" ?
Du solltest CODE posten, keine Links, darunter ALLES relevante. Das
"void Setup" <- ist das eine Datei? Eine Funktion? eine *.exe für den
PC?
Und was, aber warum frage ich das jetzt zum zweiten mal, ist eine _"void
loop"_ ?
Eine Schleife ohne Rückgabewert? Die 5. Schleife im unbekannten
Programm? (zumindest meine Kristallkugel sieht das so)
Poste zusammenhängende Sätze mit Informationen, die dir selber helfen
würden, das Problem zu erfassen. Und wenn du erkennst, wo das Problem
NICHT liegt, warum weißt du dann nicht, wo es liegt ("nicht im void
setup, weil..."). Vllt. liegt es aber doch genau da, ein Piepsen zeigt
nicht an, dass das Programm noch gleich funktioniert.
Unabhängig davon: Du nimmst Fremdcode, den du nicht verstehst und willst
eigenen Code dazubauen. Keine gute Idee. Besser aufgehoben wärst du
damit im Forum wo auch der Fremdcode herkommt oder per eMail an den
Entwickler, oder ...
Michael schrieb:> Du solltest CODE posten, keine Links, darunter ALLES relevante. Das> "void Setup" <- ist das eine Datei? Eine Funktion? eine *.exe für den> PC?
Er hantiert mit der Arduino IDE (im wesentlichen C++ mit vielen Makros
und einem Startup Code). Die setup() Funktion wird einmalig nach dem
Reset des MC aufgerufen.
> Und was, aber warum frage ich das jetzt zum zweiten mal, ist eine _"void> loop"_ ?
Diese Funktion wird nach der setup() Funktion immer wieder aufgerufen.
Sie ist das Aequivalent zum while(1){} / for(;;){} Konstrukt in einem C
Programm in der main() Funktion. Arduino Programme haben keine main()
Funktion (oder sie hat keine besondere Bedeutung).
Nungut, soviel zu Arduino. Bin gespannt auf den Code... :)
Dass er mit der Arduino IDE hantiert weiß ich seit seinem zweiten (!!!)
Post auch, aber ich bin mir immernoch sicher es gibt keine sogenannte
"void loop". Es gibt vllt eine Funktion "loop" mit Rückgabetyp "void",
darauf wollte ich hinaus. Equivalent bei "void setup".. aber egal
Nichts desto trotz schließt er Fehler in der Setup-Funktion aus, welche
er NICHT gepostet hat und bietet auch sonst keine vollständigen
Informationen die zur Lösung seines Problems beitragen. Nachdem er erst
morgen posten kann hätte er lieber mal den ganzen Thread erst morgen
gestartet und dann VOLLSTÄNDIG zusammengeschrieben was, wann und wo
passiert, passieren sollte oder nicht passiert.
Punkt
So hab jetzt mal 2 dateien angehängt
Die datei Qlockthree31 ist das eigentliche Programm der Uhr.
gleich nach dem void loop habe ich ein paar zeilen frei gelassen das man
die stelle besser findet da fängt das IR programm an.
Nach dem Programm hab ich wieder ein paar zeilen freigelassen.
Die datei IRfb ist das eine Fernbedienungs Programm was aber schon im
Qlockthree enthalten ist und bis auf den void loop stimmen müsste.
Ein wenig zur Sprache unter Programmierern:
1. Wir können auch große Anfangsbuchstaben; geschickt eingesetzt liest
sich der Text leichter.
2. Man sagt nicht "der void loop". loop ist eine Funktion, void zeigt
an, dass es keinen Rückgabewert gibt (also ist es eigentlich eine
Prozedur). Du könntest also sagen: "Beim Aufruf von loop ..." oder "der
Code in loop ..."
Und nun sag endlich wo Dein Problem liegt. Der Code enthält doch jede
Menge Serial.print-Anweisungen. Kommt da was raus? Bis wohin wird der
Code ausgeführt? Weißt Du denn wenigstens, was da rauskommen soll? Falls
Du nicht genau sagen kannst, was passiert, füge weitere Ausgaben ein.
Und nun mach Dir noch klar, dass hier und weiter oben schon jede Menge
Fragen gestellt wurden, und Du bist der Einzige, der sie beantworten
kann, das muss doch ein gutes Gefühl sein.
Ja genau das ist ja das Problem.
Das Programm bleibt direkt im Loop stehen.
Es wird weder die Matrix angesteuert, noch der DCF oder die Realtime
Clock.
Ich gehe davon aus das das IR Programm den loop in eine Warte Schleife
versetzt. Normalerweise müsste er mir das IR Programm im Debug einen
Wert zurückgeben. Aber auch da kommt nichts.