Hallo,
Mit "Normal" C gibt es gibt es diese Präprozessor Konstanten
Du mußt nur prüfen, ob sie auch bei avr-gcc dabei sind, das weiß ich nähmlich nichtCode:__LINE__ __FILE__ __DATE__ __TIME__
Gruß Sebastian
Hi,
Bei Visual C++ kann man sich Datum und Compilier-Uhrzeit Ausgeben lassen, so ne art Zeitstempel.
Geht das auch in AVR_Studio? Wie?
Ich möchte wann immer ich meinen Mega32 starte die Programmversion sowie Uhrzeit und Datum des Programms auf einem Display ausgeben. Ich habe schon zu oft einen Fehler im falschen Code gesucht.
Hallo,
Mit "Normal" C gibt es gibt es diese Präprozessor Konstanten
Du mußt nur prüfen, ob sie auch bei avr-gcc dabei sind, das weiß ich nähmlich nichtCode:__LINE__ __FILE__ __DATE__ __TIME__
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Die Compile-Zeit erhält du wie in
https://www.roboternetz.de/wissen/index.php/Avr-gcc#GCC
Wenn du die Build-Zeit willst, mach das am besten im Makefile. Date und Time in eine Datei pipen, compileren und dazulinken. Oder du erzwingst die Compilierung des entsprechenden C/C++-Moduls über ein .PHONY.
Disclaimer: none. Sue me.
Hi, Danke für die Hilfe
Aber was genau gibt dieser Ausdruck zurück?
__DATE__
Löst auf zum Datum (precompile-date)
Einen String oder einen Codierten Integer Wert oder lieg ich vollig falsch?
Wie kann ich das einsetzen?
Also in "normal" (am PC) C würde ich das so machen :
nur avr-gcc ...Code:#include<stdio.h> int main(void) { printf("Wir befinden und is der %i Zeile\n",__LINE__); printf("Kompiliert am %s\n",__DATE__); printf("Um %s\n",__TIME__); return 0; }
Moment mal
__TIME__ wird vom Präprozessor zu Kompilerzeit ersetzt, habe gerade einen Test gemacht :
Hat keinen Fehler ergeben, das ist schon ein gutes Zeichen.Code:const char kompilierzeit[] PROGMEM = __TIME__;
Am AVR darfst Du das selber ausprobieren
__TIME__ und __DATE__ sind normale Strings mit diesem Format:
Gruß und viel ErfolgCode:Oct 30 2006 00:23:51
Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Danke ich werd es demnächst mal riskieren.
Hi!
Das geht auf jeden Fall - kannst einfach irgendwo z.B.einbauen. Einziger Haken: Man muss irgendwie sicherstellen, dass diese Datei immer neu kompiliert wird. Da kommt dann für heute "Build: v1.01 - Oct 30 2006" raus.uart_puts_p(PSTR("Build: v1.01 - " __DATE__"\r"));
Gruß, Bernd
Hallo,
da ich auch sehr schlampig bin, was Verwaltung von Versionen angeht und nach 1 Monat nicht mehr weiß, welche Version jetzt auf dem µC drauf ist und in welchem Code ich den Fehler zu suchen habe, benutze ich schon länger RCS.
Es ist ein Versionsverwalttungstool, wo man mehrere Versionen einer Datei
sehr schön bearbeiten kann.
Hier findet man z.B. eine kurze Beschreibung.
Das schöne daran ist, daß ich in meinem Code verschiedene Variablen benutzen kann, die Variable $Revision$ wird z.B. im Programm zu der aktuellen Version aufgelöst.
Bei jedem Checkin wird das natürlich aktualisiert.
Ich habe es ausprobiert, und es klappt sehr gut, ein
ergibt dann in meinem Display folgende Anzeige :Code:static char vcid[] PROGMEM = "$Revision:$";
So sehe ich dann direkt, daß ich die Version 1.4 auf dem Prozessor drauf habe, und das ist um einiges besser als __DATE__ was mir das Datum nach jedem Kompilieren verändert.Code:$Revision: 1.4 $"
Vielleicht ist das was für Dich, ich bin jederfalls froh, durch Deine Anfrage hier darauf gekommenzusein
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Danke, das mit mit RCS ist mir für meine bescheidenen Anwendungen zu umfangreich da ich den Umgang in den ersten paar Minuten nicht verstanden hab (ist vielleicht was für Profis und welche die in großen Projekten den Überblick behalten wollen.)
Für mich genügt Datum und Urzeit und ich weiß zumindest das, das was ich übertragen hab auch das ist was ich grad geändert hab. Das funzt jetzt nochmals Danke.
Hi,
ist es möglich im AVR Studio einzustellen, dass ein bestimmter Qelltext immer mit Compiliert wird auch wenn sich dieser nicht verändert hat?
Lesezeichen