Liebe Spezialisten,
bitte um Hilfe für einen Beginner !
Ich habe das angehängte Main Programm und eine clock.h sowie eine
clock.c und natürlich die eingebundenen Dateien für die UART.
Deklaration der struct Variable in clock.h
struct time_st
{
unsigned char sec;
unsigned char min;
unsigned char hour;
int day;
int month;
};
extern struct time_st zeit;
Initialisierung in clock.c
struct time_st zeit;
Mein Problem ist nun, dass ich in Main nicht direkt auf zeit.sec
zugreifen kann, und auch auf keine anderen Variablen der Struktur ?
Sondern es funktioniert nur mit einer weiteren Variablen sec1 ?
Der Compiler gibt mir keinen Hinweis auf einen Fehler ?
Code unvollständig, und dann noch als Bild. Klasse! Glaskugel sagt: fehlendes volatile.
Komm, gib's zu: Du willst nur, dass hier jemand den Code aus dem Screen-Shot abtippt, damit du nicht dein OCR anwerfen musst.
Warum muß ausgerechnet nach folgender Einleitung : Andreas S. schrieb: > Liebe Spezialisten, > bitte um Hilfe für einen Beginner ! so ein Mist geantwortet werden? Die erste Antwort mit dem Hinweis war ja noch in Ordnung, das Problem sind allerdings die darauf folgende Beiträge die sich in der Gehässigkeit immer weiter steigern, steigern werden. (Selber mal erlebt, bei einer Zeitangabe in Sekunden die Abkürzung S statt s verwendet, worauf ungefähr 10 Leute der Meinung waren Beleidigungen und herablassende Texte verfassen zu müßen) So ein Verhalten macht nicht nur den Beitrag, das Anliegen des TO's kaputt sondern auch das gesamte Forum. Entschuldigung, aber das mußte nun mal raus.
Andreas S. schrieb: > Mein Problem ist nun, dass ich in Main nicht direkt auf zeit.sec > zugreifen kann, und auch auf keine anderen Variablen der Struktur ? Wie äußert sich das, wenn es doch keine Fehlermeldung gibt? Ansonsten: Auch wenn er es vielleicht für rosa Kuscheleinhörnchen etwas zu direkt formuliert hat, Stefan hat mit seinem Kommentar recht. Quelltext NICHT als Bild posten. Sondern als Text. Und bitte vollständigen Quelltext posten. Der Quelltext kann entweder als Datei angehängt werden (bei längeren Texten ist das zu bevorzugen), oder hier im Text eingebunden werden, dann aber sollte er in [ c ] [ /c ] - Tags eingeschlossen werden, damit er lesbarer wird.
Andreas S. schrieb: > bitte um Hilfe für einen Beginner ! Auch als Beginner muß man wissen, daß ein Quelltext *.c heißt und nicht *.png.
Liebe Leute, ich bitte vielmals um Entschuldigung, das was gut gemeint war, ist vollkommen falsch angekommen. Ich hätte eher mit Protest gerechnet wenn ich einfach die Dateien angehängt hätte - so quasi ich habe keine Ahnung woran es liegt, kümmert euch bitte darum. Genau diesen Eindruck wollte ich vermeiden - weil ich so nicht bin - und habe mich deshalb bemüht die Ursachen einzugrenzen. Anfänglich hatte ich diese Routine aus diesem Forum nur funktioniert sie bei mir leider nicht. Ich dachte an einen dummen Anfängerfehler, einfach etwas das man zwar gelesen, aber ohne laufende Beschäftigung und Erfahrung nicht abrufbar hat. Ich war die letzten Stunden nicht online, und wollte als erstes antworten. Den Code in der gewünschten Form liefere ich sofort !
Hallo, hier sind meine sämtlichen betreffenden Dateien. Die clock Dateien sind nicht schön lesbar, ich weiß aber auch nicht was "in [ c ] [ /c ] - Tags eingeschlossen" bedeutet ?
Ich glaube die Glaskugel war korrekt, ersetze doch mal die Zeile in der clock.c:
1 | struct time_st zeit; |
durch
1 | volatile struct time_st zeit; |
und im header natürlich auch.
Lieber Sven, vielen herzlichen Dank, deine Glaskugel könnte ich gut brauchen :-) Ich habe deine Lösung überhaupt nicht in Erwägung gezogen, weil auch im übernommenen Code kein Volatile vorangestellt war ! Wie auch immer mein Problem hast du gelöst, vielen Dank !!
Gerne, aber dem Dank gebührt Stefan, ich konnte es nur sehen, dass es tatsächlich so ist, weil der Code jetzt da war. Dann viel Spaß mit dem Programm! Stefan E. schrieb: > Glaskugel sagt: fehlendes volatile.
natürlich vielen Dank lieber Stefan, ich hatte nicht mehr nach oben gescrollt sondern dachte das war auch schon Sven - sorry !!
Nur interessehalber - warum nimmst du int für day und month?
das habe ich momentan nur so übernommen ! Ich nehme einen Code der mich interessiert und arbeite in Stück für Stück durch um zu lernen. Aber soweit bin ich noch nicht, weil ich schon bei der Zeit hängen geblieben bin !
Benutzt du eigentlich bei diesem Mammutprogramm mal einen Debugger? Ansonsten glaube ich nicht, das du als Anfänger da durch steigst.
Hi. Die Uhr dürfte nicht besonders genau werden mit nem 8MHz Quarz und Timer 0. Nimm dafür lieber einen uhrenquarz mit 32.768 Hz und gleich den ab. Gruss
Hallo, #Cyborg: Ich bin mir nicht sicher ob du das zynisch meinst ? ;-) Wie auch immer ich greife deine Frage auf und bitte um Unterstützung. Ich war der Meinung mit einem Debugger könnte man Programme nur simulieren um Programmierungszyklen zu minimieren. Da ich einen Bootlader installiert habe ist die Programmübertragung sehr einfach und ich übertrage nach jeder Änderung das Programm neu. #Jean das werde ich in weiterer Folge auch machen, ich warte gerade auf ein RTC - Modul !
Andreas S. schrieb: > um Programmierungszyklen zu minimieren. Das Werkzeug ist viel mächtiger als man denkt. Man kann auch Variable beobachten und den Programmablauf Step by Step laufen lassen. Dann muss man nämlich nicht raten, was das Programm macht, sondern sieht wo ein Fehler ist. https://de.wikipedia.org/wiki/Debugger
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
