Forum: Mikrocontroller und Digitale Elektronik Stoppuhr für ATmega16


von Alfred F. (bluedeep)


Lesenswert?

Hallo zusammen,

ich suche schon seit Tagen nach einer Lösung, wie ich eine Stoppuhr 
realisiere.
Ich habe ein kleines Programm in C geschrieben, für den ATmega16, mit 
drei Tastern, einen für Start, einen für Stopp und einen für den 
Reset.Dazu habe ich ein Display mit eingebunden, welches mit den 
lcd_routines läuft.

Jetzt möchte ich aber gerne noch eine Stoppuhr mit einbauen, welche mit 
den genannten Tastern gestartet bzw. gestoppt und resetet wird. Die 
Zeiten will ich mir am Display anzeigen lassen, in Sekunden, hundertstel 
und tausendstel Sekunden.

Vielleicht kann mir ja jemand hier behiflich sein, wo ich soetwas finde, 
denn dies ist ja bestimmt keine Neuerfindung.

Falls niemand hier bescheid weiß, wo es soetwas in der Art gibt, dann 
wäre ich natürlich auch sehr froh darüber, wenn mir einer Anhaltspunkte 
gibt, wie ich dies realisieren könnte.

von Stefan F. (sfrings)


Lesenswert?

Nimm einen ATmega16 mit Tastern und Display, und schreibe dann ein 
Programm dazu.

Wenn Du lieber etwas fertiges willst, dann kaufe eine fertige Uhr. 
Kostet sicher nicht mehr als 10 Euro.

von Karl H. (kbuchegg)


Lesenswert?

Alfred Flöckchen schrieb:

> Jetzt möchte ich aber gerne noch eine Stoppuhr mit einbauen, welche mit
> den genannten Tastern gestartet bzw. gestoppt und resetet wird. Die
> Zeiten will ich mir am Display anzeigen lassen, in Sekunden, hundertstel
> und tausendstel Sekunden.
>
> Vielleicht kann mir ja jemand hier behiflich sein, wo ich soetwas finde,
> denn dies ist ja bestimmt keine Neuerfindung.


Wie wärs mit selber programmieren?
So eine Uhr ist ja nicht gerade Raketentechnik. Sobald du mit einem 
Timer umgehen kannst und auf ein LCD ausgeben kannst, ist die Sache 
gebongt.

FAQ: Timer
AVR-Tutorial: Uhr
AVR - Die genaue Sekunde / RTC

von Alfred F. (bluedeep)


Lesenswert?

Na, wie erwartet bekommt man hier wieder tolle Antworten. Wie schon 
geschrieben, habe ich ja schon ein Programm mit Tastern und 
Displayausgabe geschrieben.
So, und wenn ich jetzt noch wüsste, wie man die Stoppuhr selbst 
programmiert, dann müsste ich ja auch nicht so doof fragen. Ich schrieb 
auch, dass ich über Anhaltspunkte sehr froh bin, um zu erfahren, wie man 
diese Stoppuhr selbst programmiert.

von Karl H. (kbuchegg)


Lesenswert?

Alfred Flöckchen schrieb:
> Na, wie erwartet bekommt man hier wieder tolle Antworten.

Na, was erwartest du?

Eine Stoppuhr IST trivial, wenn man mit Timern umgehen kann.
Also musst du dich mit Timern beschäftigen. Der ist dein Zeitgeber. Und 
ab dort ist es dann
   nach 10 Tausendsetlsekunden ist 1 Hunderstel vergangen
   nach 10 Hunderstel ist eine Zehntel vergangen
   nach 10 Zehntel ist 1 Sekunde vergangen
   Nach 60 Skeunden ist 1 Minute vergangen

Also einfach nur auf die jeweiligen Endwerte vergleichen und die nächst 
höhere Stufe um 1 weiter stellen. Recht viel mehr als Vergleichen und 
gegebenenfalls 1 zu einer Variablen addieren brauchst du da nicht 
können.

Der Schlüssel ist der Timer und das man den so einstellen kann, dass er 
in bestimmten Zeitabständen (die man 'konfigurieren' kann) eine 
bestimmte Funktion aufruft.
Und dazu hab ich dir ein paar Links gegeben

Lernen musst du schon selber.
Oder was fertiges kaufen, wenn dir das zu mühsam ist.

von scnr troll (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Alfred Flöckchen schrieb:
>> Na, wie erwartet bekommt man hier wieder tolle Antworten.
>
> Na, was erwartest du?
Eine fertiges Programm inkl. 30 seitiger Doku, was dachtest du denn?

von Alfred F. (bluedeep)


Lesenswert?

Hallo Karl Heinz,

das war nicht auf dich bezogen (Na, wie erwartet bekommt man hier wieder 
tolle Antworten). Als ich dies schrieb, sah ich deine Antwort noch 
nicht.

Danke für die Links. Ich habe dort auch schon etwas zuvor gestöbert und 
habe auch eine Routine für den Timer1 geschrieben, allerdings weiß ich 
nicht, wie man diesen Wert auslesen kann, um ihn am Display auszugeben.

Übrigens, was ich dachte, schrieb ich ja mittlerweile schon zweimal hin. 
Ich fragte einfach nur, ob es einen fertigen Code gibt oder ob mir 
jemand, falls es den Code nicht geben sollte, Unterstützung gibt, wie 
ich diesen selbst realisieren kann.

von Karl H. (kbuchegg)


Lesenswert?

Alfred Flöckchen schrieb:

> Danke für die Links. Ich habe dort auch schon etwas zuvor gestöbert und
> habe auch eine Routine für den Timer1 geschrieben, allerdings weiß ich
> nicht, wie man diesen Wert auslesen kann, um ihn am Display auszugeben.


Studier mal diesen Thread
Beitrag "Befehlszusammenfassung in C"

Keine Sorge, auch wenn er nicht so anfängt, entwickelt er sich doch in 
eine Richtung, die für dich nützlich ist.
Wichtig: Vollständig lesen! Ich hab in meiner Musterlösung einen Fehler 
eingebaut.

von Michael A. (Gast)


Lesenswert?

Alfred Flöckchen schrieb:
> Danke für die Links. Ich habe dort auch schon etwas zuvor gestöbert und
> habe auch eine Routine für den Timer1 geschrieben, allerdings weiß ich
> nicht, wie man diesen Wert auslesen kann, um ihn am Display auszugeben.

Wozu möchtest du den Wert vom Timer ausgeben, abgesehen davon, dass du 
das Timerregister einfach nur lesen müßtest. (Beispiele s. Links o.). 
Der Timer erzeugt dir eine Zeitbasis unabhängig vom Beschäftigungsgrad 
des Prozessors. Deine Zeit erzeugst du über einen Software-Zähler, der 
bei jedem Tick des Timers eins weiter zählt.

von Stefan F. (sfrings)


Lesenswert?

Eine Uhr hat er ja schon, also hat er schon einen funktionierenden imer 
und funktionierende Ausgabe-Routinen.

Wo ist also nun das Problem?

Da könnte ich ja gleich fragen: Vor mir liegt ein Burger. Ich möchte den 
Burger essen. Wie kann ich das tun?

von Frank (Gast)


Lesenswert?

Damit die Bedienung keinen Einfluss auf die Genauigkeit hat, musst du 
das reine Hochzählen der Millisekunden und die Abfrage der Start- und 
Stopp-Taste im Timer-Interrupt machen.

In einem mormalen Loop, wie halt so üblich, machst du das Formatieren 
der Zeitangabe (100tel, 10tel, Sekunden, Minuten), bedienst das Display 
und die Reset-Taste ... evtl. hast du ja später noch Lust zu einer 
Computer-Anbindung per RS232/USB ...

von Werner (Gast)


Lesenswert?

Alfred Flöckchen schrieb:
> Die Zeiten will ich mir am Display anzeigen lassen, in Sekunden,
> hundertstel und tausendstel Sekunden.

Bei einer Steuerung über Tasten erscheinen die tausendstel Sekunden eher 
überflüssig. Statt dessen wären zehntel Sekunden wichtiger.

von Alfred F. (bluedeep)


Lesenswert?

Ok, da lag ich total falsch. Ich dachte, dass man den Timer erst 
auslesen muss und diesen dann irgendwie teilen muss, um ihn dann am 
Display sichtbar zu machen.
Ich muss mich jetzt erst mal etwas einlesen. Vielleicht versteh ich dann 
etwas mehr.

Danke

von Stefan F. (sfrings)


Lesenswert?

Vieleicht lernst Du das Programmieren erstmal mit etwas einfacherem.

- Lass mal eine LED blinken.
- Lass die LED exakt in 1/100tel oder 1/1000 Sekunden blinken.
- Zähle die Impulse und zeige die Zahl an.
- Nutzen einen Taster, um die Zählung zu starten und zu stoppen.
- Programmiere eine Uhr.
- Programmiere eine Stoppuhr.
- Kombiniere beide Programme.


Man fängt klein an. Offensichtlich hast Du noch wenig Erfahrung im 
Programmieren. Der Versuch, fremde Software zu erweitern ist da nicht so 
geschickt. Selber machen ist lehrreicher und einfacher. Erst mit einer 
gewissen Erfahrung wirst Du imstande sein, fremde Programme zu verstehen 
und zu erweitern.

von Karl H. (kbuchegg)


Lesenswert?

Alfred Flöckchen schrieb:
> Ok, da lag ich total falsch. Ich dachte, dass man den Timer erst
> auslesen muss und diesen dann irgendwie teilen muss, um ihn dann am
> Display sichtbar zu machen.

Siehst du.
JETZT hast du was gelernt.

Der Zweck eines Timers ist oft gar nicht das zählen an sich. Der Zweck 
eines Timers besteht darin, dass er in gleichmässigen Zeitabständen 
dafür sorgt, dass eine ganz bestimmte Funktion aufgerufen wird. Was man 
dann auch immer in dieser Funktion macht, ist eine andere Geschichte. 
Das könnte die Überprüfung sein, ob eine Taste gedrückt ist, dass kann 
das Weiterschalten eines Lauflichtes sein, das kann ... was auch immer. 
Und das kann natürlich auch das Hochzählen einer Variablen um 1 sein, 
die du 'Sekunde' nennst. Und wenn die ISR tatsächlich jede 1 Sekunde 
aufgerufen wird, weil der Timer so eingestellt ist, dann ...  na dann 
'zählt' diese Variable im Sekundentakt hoch. Und wenn dann schon eine 
Variable mit Sekunden da sind, dann kann man auch eine weitere Variable 
'Minute' haben, die immer dann um 1 erhöht wird, wenn die Variable 
'Sekunde' bei 60 angelangt ist.

Und eine Stoppuhr ist dann ganz einfach
Der ganze Zählvorgang findet nur dann statt, wenn eine weitere Variable 
auf TRUE steht. In der Hauptschleife iwrd eine Taste abgefragt und wenn 
die Taste gedrückt ist, dann wird diese Variable eben auf TRUE gestellt 
(womit die 'Uhren-Variablen' augenblicklich mit Zählen anfangen. Und mit 
wieder einer anderen Taste wird die Variable wieder auf FALSE gestellt 
(womit die Uhren Variablen nicht mehr weiterzählen). Na und eine dritte 
Taste sorgt dafür, dass die Uhren Variablen alle wieder auf 0 gestellt 
werden.
In der Hauptschleife noch die Ausgabe der UhrenVariablen aufs LCD und 
fertig ist die Stoppuhr.

Und jetzt sag selber.
Abgesehen von der Sache mit dem Timer - ist das Raketentechnik oder ist 
das  eher trivial?
1
volatile uint8_t  clockRunning;
2
volatile uint8_t  Sekunde;
3
volatile uint8_t  Minute;
4
5
ISR( ... )
6
{
7
8
  if( clockRunning )
9
  {
10
    Sekunde++;
11
12
    if( Sekunde == 60 )
13
    {
14
      Sekunde = 0;
15
      Minute ++;
16
    }
17
  }
18
}
19
20
int main()
21
{
22
 ....
23
24
25
  while( 1 )
26
  {
27
28
    if( PIN ..... Taste 1 gedrückt )
29
      clockRunning = TRUE;
30
31
    if( PIN ..... Taste 2 gedrückt )
32
      clockRunning = FALSE;
33
34
    if( PIN ..... Taste 3 gedrücjt )
35
    {
36
      Sekunde = 0;
37
      Minute = 0;
38
    }
39
40
    Sekunde + Minute am LCD ausgeben
41
  }
42
}

Das ist doch nicht schwer - bis auf die Sache mit dem Timer.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Kurze Zwischenfrage: ist es sinnvoll, tausendstel Sekunden anzuzeigen? 
Wenn man von Hand stoppt, ist es ja schon unmöglich, die hundertstel 
Sekunden korrekt zu erwischen.

Ansonsten: schönes Projekt!

von Stefan F. (sfrings)


Lesenswert?

Ja, es macht Sinn: Zum Eindruck schinden.

Irgendwass muss die Uhr ja (zumindest scheinbar) besser können, als eine 
5 Euro Stoppuhr aus dem 1 Euro Shop. Sonst macht das Vorführen keinen 
Spaß.

von Alfred F. (bluedeep)


Lesenswert?

Danke nochmals Karl Heinz,

jetzt wird mir einiges schon etwas verständlicher. Jetzt muss ich mich 
nur erst noch genauer in diese Timer Geschichte einlesen und dann 
versuch ich mal das ganze umzusetzen. Dann werde ich ja sehen, wo meine 
weiteren Probleme liegen.

Eine Raketentechnik ist es bestimmt nicht, aber wenn man von irgend 
etwas keine Ahnung hat, kann der Anfang schon recht schwer sein und da 
sieht man oft den Wald vor lauter Bäumen nicht.

von Alfred F. (bluedeep)


Lesenswert?

Markus W. schrieb:
> Kurze Zwischenfrage: ist es sinnvoll, tausendstel Sekunden anzuzeigen?
> Wenn man von Hand stoppt, ist es ja schon unmöglich, die hundertstel
> Sekunden korrekt zu erwischen.
>
> Ansonsten: schönes Projekt!

Hi Markus,

ob es Sinn macht oder nicht, dass werde ich dann vermutlich schon noch 
sehen, aber im Gegensatz zu einer gekauften Uhr, wird diese ja auch 
nicht per Hand gestoppt.

Ich finde es aber schön, dass dir das Projekt gefällt :-)

von Alfred F. (bluedeep)


Angehängte Dateien:

Lesenswert?

Hallo Karl Heinz,

ich habe jetzt mal ein Programm für meine Stoppuhr geschrieben.

Fehler werden keine angezeigt, aber auf dem Display erscheinen leider 
nur Nullen. Könntest du mir vielleicht einen Tipp geben wie ich jetzt 
weiter vorgehen sollte. Ich hoffe, dass der Rest so stimmt und ich es 
soweit richtig gemacht habe, wie du mir es erklärt hast. Falls nicht, 
dann bitte nicht gleich zerfleischen, ich bin doch Anfänger und versuche 
es zumindest gerne, mir hier etwas zu erlernen.

von Karl H. (kbuchegg)


Lesenswert?

Aber nicht mit dem Programm :-)

Muss mal weg.
Bin um 15 Uhr wieder online (voraussichtlich)

von Alfred F. (bluedeep)


Lesenswert?

Oh Gott, hab ich so viel falsch gemacht :-)

Ich schau dann später mal rein.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

OK, wenn die Zeit maschinell genommen wird, dann ergeben die 100stel 
auch einen Sinn.

Alfred Flöckchen schrieb:
> Oh Gott, hab ich so viel falsch gemacht :-)

Ich hab das Programm jetzt nur ganz grob überflogen. Verwendest du 
Timer? Ich hab auf den ersten Blick nur Verzögerungsschleifen gesehen. 
Das funktioniert zwar im Prinzip, aber du fängst dir damit immer wieder 
Probleme ein, was die Genauigkeit betrifft. Würde dir die Timer-Technik 
dringend empfehlen.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Timer

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR

Karl Heinz hat dir oben ja schon einen wertvollen Fingerzeig für den 
strukturellen Aufbau gegeben.

von Karl H. (kbuchegg)


Lesenswert?

Alfred Flöckchen schrieb:
> Oh Gott, hab ich so viel falsch gemacht :-)

Da drinnen sind noch nicht einmal Ansätze einer Uhr zu entdecken.

von Alfred F. (bluedeep)


Angehängte Dateien:

Lesenswert?

Hallo Karl Heinz!

Jetzt weiß ich auch was du damit meinst, dass in dem Programm nicht mal 
ansatzweise eine Uhr zu erkennen ist lach

Ich hab versehentlich das falsche Programm eingefügt. Vielleicht kannst 
du dieses ja grad wieder löschen, da ich keine Berechtigung dazu habe 
und dieses hier auch nichts mit dem Thema zu tun hat.

So, aber jetzt hab ich das richtige hochgeladen.

von Karl H. (kbuchegg)


Lesenswert?

Und wie soll das funktionieren, wenn deine Funktion zeitanzeige() nur 
dann aufgerufen wird, wenn gerade eine Taste gedrückt ist?
die Funktion sollte ja doch wohl dauern aufgerufen werden, damit sich 
auch auf der Anzeige was tut.

von Alfred F. (bluedeep)


Lesenswert?

Ja Karl Heinz, genau da liegt jetzt mein Problem und ich weiß einfach 
nicht, wie ich das machen soll. Wenn das wenigstens mal funktionieren 
würde, dann könnte ich auch mal sehen, ob sich da überhaupt was tut. Du 
lachst wahrscheinlich drüber, da du bestimmt weißt warum es nicht geht, 
aber ich steh grad voll auf dem Schlauch. Ist wenigstens der Rest 
einigermaßen in Ordnung?

von Karl H. (kbuchegg)


Lesenswert?

Klassischer Anfängerfehler:
zuviel auf einmal, von dem man keine Ahnung hat.
Die Aufgabe unterschätzt und das eigene Können überschätzt.

Fang halt erst mal klein an!
Muss ja nicht gleich eine Stoppuhr sein. Eine Variable, die du in der 
ISR hochzählst und der Hauptschleife aufs LCD ausgibst, völlig ohne 
irgendwelche Taster, ist für deine ersten Gehversuche auch schon genug. 
Und wenn das dann läuft, dann baust du es nach und nach immer weiter in 
Richtung Stoppuhr aus.

> genau da liegt jetzt mein Problem und ich weiß einfach
> nicht, wie ich das machen soll.

Dann lern es.
Sorry, wenn das jetzt brutal klingt. Aber genau da hat noch jeder durch 
müssen, wenn er programmieren lernen will: Indem er sich durchgebissen 
hat.

Durch Aneinanderreihen von geklautem Code ohne zu wissen was man tut hat 
noch nie jemand programmieren gelernt.

von Peter D. (peda)


Lesenswert?

Alfred Flöckchen schrieb:
> Ja Karl Heinz, genau da liegt jetzt mein Problem und ich weiß einfach
> nicht, wie ich das machen soll.

Das ist doch ganz einfach:

1.
Ein Timerinterrupt 1ms zählt z.B. eine 32Bit-Variable, ergibt max 49 
Tage.

2.
Zusätzlich zählt der Timerinterrupt ein Byte runter bis 0.
Ist das Byte 0, wandelt das Main den 32Bit-Zähler in d,h,m,s,ms und 
stellt das dar. Die Bytevariable wird wieder auf 200 gesetzt.
Also alle 200ms wird neu angezeigt, das ist ergonomisch und belastet die 
CPU kaum.

3.
Zusätzlich entprellt der Timerinterrupt die Taste(n). Mit der bewährten 
4-fach Entprellung startet der Zähler zwar 4ms später, stoppt aber auch 
4ms später, man hat also keinen Fehler durch die Entprellung.

4.
fertig.


Peter

von Alfred F. (bluedeep)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Durch Aneinanderreihen von geklautem Code ohne zu wissen was man tut hat
> noch nie jemand programmieren gelernt.

Nur weil ich mich nicht mit den Timern auskenne, heißt es ja nicht 
gleich, dass ich mich überhaupt nicht auskenne. Wenn ich irgendeinen 
Code klauen wollte, ohne etwas zu lernen, dann hätte ich die Stoppuhr 
auch schon längst fertig, da es diese auch schon gibt.

Was denkst du überhaupt, was ich hier wohl mache? Na klar, bin ich zum 
lernen hier, aber hier kommt man ja scheinbar nur weiter, wenn man von 
allem schon voll die Ahnung hat. Lies dir doch mal die Beiträge in dem 
Forum durch, mal sehen ob es dir auch auffällt, dass hier nie jemand zum 
Ende kommt, wenn er nicht so die Ahnung hat. Entweder wird er gleich von 
allen Seiten doof angemacht oder es melden sich Typen, welche selbst 
keine Ahnung haben und einfach mal ihren Senf abgeben, da es ihnen wohl 
zu Hause langweilig ist oder sie dort nichts zu sagen haben.

Ich will doch hier einfach nur was lernen und eigentlich dachte ich 
auch, dass dies hier möglich sein sollte.

Ich weiß zwar selbst, dass hier jetzt gleich wieder der habe Text 
markiert und zitiert wird, aber eigentlich find ich das echt schade, da 
man hier eher etwas motiviert werden sollte, statt belächelt und als 
dumm verkauft werden sollte.

Karl Heinz, nimms nicht persönlich! Du bist hier absolut einer von 
wenigen, zusammen auch mit  Peter Dannegger, die hier klasse Arbeit 
machen und sich ganz toll bemühen und engagieren, um anderen zu helfen.

Vergisst aber nicht, dass das was für euch leicht erscheinen mag, für 
andere erst mal schwer ist. Ihr könnt doch bestimmt auch nicht alles, 
drum versucht doch auch mal, euch in andere hineinzuversetzen.

von Peter D. (peda)


Lesenswert?

Alfred Flöckchen schrieb:
> aber hier kommt man ja scheinbar nur weiter, wenn man von
> allem schon voll die Ahnung hat.

Dem ist nicht so.
Aber Du mußt Dich von dem Gedanken verabschieden, daß es hier wie in 
einer Schule ist, d.h. ausgebildete Lehrer am Werke sind. Dem ist nicht 
so.

Falls Du der Meinung bist, jemand hat Dich mißverstanden (passiert 
unweigerlich mal und in jedem Forum), kann man das möglichst knapp und 
emotionslos richtig stellen.
Ansonsten ist es das klügste, man ignoriert einfach diese Zeilen und 
konzentriert sich auf die Antworten zum Thema.


Peter

von Karl H. (kbuchegg)


Lesenswert?

Alfred Flöckchen schrieb:
> Karl Heinz Buchegger schrieb:
>> Durch Aneinanderreihen von geklautem Code ohne zu wissen was man tut hat
>> noch nie jemand programmieren gelernt.
>
> Nur weil ich mich nicht mit den Timern auskenne, heißt es ja nicht
> gleich, dass ich mich überhaupt nicht auskenne. Wenn ich irgendeinen
> Code klauen wollte, ohne etwas zu lernen, dann hätte ich die Stoppuhr
> auch schon längst fertig, da es diese auch schon gibt.

Wenn du von Timer keine Ahnung hast (was erst mal nicht schlimm ist), 
dann musst du das ändern. Ich hab dir genügend Resourcen gezeigt an 
denen du lernen kannst wie das funktioniert. Leg halt mal dein GLCD 
beiseite, häng eine LED an einen Portpin und lass die timergesteuert im 
Sekundentakt blinken.
Alleine das du nicht auf die Idee kommst, erst mal mit einem einfacheren 
Testprogramm auszuprobieren, wie das alles funktioniert, erzählt 
zumindest mir schon seht viel, was du in der Vergangenheit gemacht und 
gelernt hast.

Der Vorgang ist IMMER der gleiche: Erst mal probiert man an einem 
EINFACHEN Beispiel eine neue Technik aus. Das Beispiel kann dabei nicht 
einfach genug sein! Alles was für das Verständnis der Funktionsweise 
nicht notwendig ist, wird erst mal weggelassen. Daher auch: Eine LED 
blinken und nicht gleich eine Stoppuhr mit Weltzeitfunktion. Der Timer 
ist erst mal das wichtige und der Sekundentakt, den man damit erzeugt. 
Und nicht ob da jetzt im Sekundentakt irgendwelche Staudammschleusen 
geöffnet werden.
Ist es wichtig, dass du die Uhr starten und wieder anhalten kannst? Für 
eine Stoppuhr ist das sicherlich wichtig, aber erst mal ist es etwas, 
was du ignorieren kannst. Denn erst mal muss die Uhr laufen. Und erst 
dann kann man sich darüber den Kopf zerbrechen, wie man sie anhält. Ist 
es wichtig, dass die Uhr in Sekunden und Minuten anzeigt? Im endeffekt 
ist das natürlich irgendwann wichtig. Aber im Moment ist es etwas, was 
du ignorieren kannst, denn erst mal muss sich überhaupt etwas tun. Ob 
das eine LED ist, die blinkt oder eine Ziffer die hochzählt - beides 
erzählt dir dasselbe, nämlich ob dein Zeitgeber läuft. Nur ist eine LED 
anzusteuern um ein Vielfaches leichter.

Niemand verkauft dich für dumm.
Aber letzten Endes ist es wie beim Radfahren. Du kannst 200 Artikel 
darüber lesen, du kannst dir Ratschläge einholen, du kannst alles lesen, 
was es zu dem Thema zu lesen gibt .... Wenn du dich das erst mal auf ein 
Rad setzt, bist du alleine. Und dich wird es runterwerfen, denn 
Gleichgewicht halten, ist etwas was man nicht aus Büchern lernen kann. 
Das muss man selber machen!

Glaubst du, mich hat es nicht auf die Schnauze geworfen? Glaubst du 
Peter hat sich 'aufs Rad gesetzt' und ist gleich losgedüst? Wir alle 
mussten da durch. Keiner kommt zur Welt und kann programmieren.
Und wir alle haben klein angefangen. Mit einfachen Dingen. Und haben uns 
langsam gesteigert. Und wenn eine neue Technik dazu gekommen ist, dann 
probiert man die halt mal an einem Testprogramm, bei dem es nur um diese 
eine Technik geht und sonst nichts, aus.

Das ist der klassische ANfängerfehler: Zu denken, nur weil man etwas 
programmieren möchte, was man vermeintlich versteht, dass das auch 
einfach wäre. Es IST in den meisten Fällen für einen Anfänger nicht 
einfach! Und der Weg, wie man Dinge in den Griff kriegt, lautet: 
Schrittweise vorgehen! Abspecken. Erst mal ein einfacheres Beispiel 
konstruieren, welches am Anfang des Weges steht und aus dem heraus man 
sich Schritt für Schritt zum gewünschten Ergebnis vortastet.
Der einzige Unterschied zwischen dir und mir, ist die Größe der 
SChritte. Meine sind größer - aber im Prinzip arbeite ich nach all den 
Jahren immer noch nach diesem Schema - schrittweise. Wenn dir der eine 
Schritt mit Anzeige der kompletten Uhr zu groß ist, dann mach eben einen 
kleineren Schritt zuerst - eine einzelne Zahl. Wenn der immer noch zu 
groß ist, dann pfeif auf die Zahl und lass eine LED blinken.

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.