Forum: Mikrocontroller und Digitale Elektronik Kleines Programm - großes Problem :-(


von Andreas S. (define_andreas)


Angehängte Dateien:

Lesenswert?

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 ?

von Stefan E. (sternst)


Lesenswert?

Code unvollständig, und dann noch als Bild.
Klasse!

Glaskugel sagt: fehlendes volatile.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Komm, gib's zu:  Du willst nur, dass hier jemand den Code aus dem 
Screen-Shot abtippt, damit du nicht dein OCR anwerfen musst.

von Holger L. (max5v)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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.

von Andreas S. (define_andreas)


Lesenswert?

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 !

von Andreas S. (define_andreas)


Angehängte Dateien:

Lesenswert?

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 ?

von Sven S. (boldie)


Lesenswert?

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.

von Andreas S. (define_andreas)


Lesenswert?

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 !!

von Sven S. (boldie)


Lesenswert?

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.

von Andreas S. (define_andreas)


Lesenswert?

natürlich vielen Dank lieber Stefan, ich hatte nicht mehr nach oben 
gescrollt sondern dachte das war auch schon Sven - sorry !!

von H.Joachim S. (crazyhorse)


Lesenswert?

Nur interessehalber - warum nimmst du int für day und month?

von Andreas S. (define_andreas)


Lesenswert?

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 !

von Cyborg (Gast)


Lesenswert?

Benutzt du eigentlich bei diesem Mammutprogramm mal einen
Debugger? Ansonsten glaube ich nicht, das du als Anfänger
da durch steigst.

von Jean player (Gast)


Lesenswert?

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

von Andreas S. (define_andreas)


Lesenswert?

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 !

von Cyborg (Gast)


Lesenswert?

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

von Andreas S. (define_andreas)


Lesenswert?

Danke für die Info, ich werde das studieren !

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
Noch kein Account? Hier anmelden.