Hallo liebe Programmierer,
ich sitze gerade vor meinem Steckbrett. Darauf befindet sich ein Atmega
32, ein ULN2803 und ein Schrittmotor.
Die Anstuerung des Schrittmotors habe ich hinbekommen.
Im nächsten Schritt wollte ich versuchen, den Schrittmotor eine
bestimmte Anzahl an Schritten fahren zu lassen. Aber ich scheitere
kläglich.
Habe es mit einer for-Schleife probiert, aber es kommt nicht zum Abbruch
des "steppens".
Ich habe aber leider keinen blassen Schimmer worand das liegen soll.
Habe jetzt mehrere C-Tutorials angeschaut, in allen ist der Aufbau immer
gleich
for(n=0;n=10;n++)
{
Bedingung
}
Nur bei mir klappt das nicht. Mein Stepper macht auch nach gewünschten
10 Durchläuen einfach nicht halt.
Könnte eventuell mal einer von euch drüber schaunen?
Vielen Dank!
Anbei mein Code
Paul schrieb:> Habe jetzt mehrere C-Tutorials angeschaut, in allen ist der Aufbau immer> gleich>> for(n=0;n=10;n++)
das glaube ich nicht, zeige uns ein Beispiel im Netz wo das so gemacht
wird?
Achim_42 schrieb:> Die For Schleife wird schon beendet, dann ist aber eine While (1)> drüber, und die for-Schleife beginnt wieder von vorne.
Danke, dass war der entscheidente Hinweis.
C-Buch hab ich, oder denkt ihr ich hab mir die ganze Syntax selbst
ausgedacht und wunder mich noch warum nix geht...
Paul schrieb:> Achim_42 schrieb:>> Die For Schleife wird schon beendet, dann ist aber eine While (1)>> drüber, und die for-Schleife beginnt wieder von vorne.>> Danke, dass war der entscheidente Hinweis.>> C-Buch hab ich, oder denkt ihr ich hab mir die ganze Syntax selbst> ausgedacht und wunder mich noch warum nix geht...
Wär nicht das erste mal.
Wer nicht weiß, wie die 3 Bestandteile in einem for funktionieren und
dann auch noch = mit == verwechselt, hat üblicherweise keine Buch. Da
würde ich jederzeit Geld drauf setzen, auch wenn ich diesmal verloren
hätte.
Oder er hat eines, benutzt es aber nicht so wie vorgesehen. Oder er hat
schlicht das falsche.
Man kann es auch nicht oft genug betonen, dass wenn C noch nicht so gut
sitzt, C einfach auf dem PC lernen/üben sollte. Der PC ist keine
Blackbox und einfacher zu bedienen. Praktischerweise gibt es da auch
noch einen unschlagbaren Debugger.
Paul schrieb:> C-Buch hab ich, oder denkt ihr ich hab mir die ganze Syntax selbst> ausgedacht
Blindes Copy&Paste hilft manchmal nicht. Verstehen was da passiert ist
das Wichtige. Dafür ist es ungemein lehrreich auch mal mit dem Simulator
deiner Wahl Schritt für Schritt durchzusteppen und bei den
Einzelschritten die Variablen-/Registerwerte zu verfolgen. Dann sieht
man sofort, wenn etwas anders läuft, als man es sich gedacht hat und
sieht vor allen Dingen auch, woran es liegt.
Um Gottes Wilhelm! Keinen Debugger!
Da würde man ja schon dem ersten Schleifendurchlauf sehen, dass die
Variable den Wert 10 hat.
Übrigens:
>Blindes Copy&Paste hilft manchmal nicht.
Es gehört schon ein gerüttelt Maß an Glück dazu, eine solche
for-Schleife zum Kopieren, zu finden:-)
Paul schrieb:> Achim_42 schrieb:>> Die For Schleife wird schon beendet, dann ist aber eine While (1)>> drüber, und die for-Schleife beginnt wieder von vorne.>> Danke, dass war der entscheidente Hinweis.>> C-Buch hab ich, oder denkt ihr ich hab mir die ganze Syntax selbst> ausgedacht und wunder mich noch warum nix geht...
Ein C-Buch ist eben kein Groschen-Roman, den man einfach mal so
durch-schwartet. Da muss man das Gelesene auch verstehen.
Ja ich weiß, dass ist viel verlangt in einer Zeit, wo alles gefällgst
mit ein paar Klicks und ohne weiteres Zutun und Mühe zu funktionieren
hat.
;-)
Tut wüsste ich keines.
Aber es gibt sicher eine App. Zur Not gibts auch was bei Youtube.
Kommt Leute. Lasst es gut sein.
Wir haben es hier wieder mal mit dem Typus Programmierer zu tun, die die
einführenden Tutorien mit LED ein/aus bzw. LED blinken überspringen, C
brauchen sie nicht lernen sondern die steigen gleich 'richtig' mit ihrem
Problemkreis ein. Und dann fallen sie eben auf die Nase.
Ist nicht das erste mal und wird auch nicht das letzte mal sein.
Eure Häme ist kotzübel!
Ist Euch Helden mal in den Sinn gekommen, daß sich Menschen nicht
freiwillig
mit solch einer ''*\}]{³² -Sprache auseinandersetzen?
>Ist Euch Helden mal in den Sinn gekommen, daß sich Menschen nicht freiwillig mit
solch einer ''*\}]{³² -Sprache auseinandersetzen?
Na und? Menschen sterben auch nicht freiwillig. Dennoch widmen sie sich
dieser Tätigkeit mit all der Ernsthaftigkeit, die sie aufbringen können.
Hallo,
wer weiß schon, wieviel Geld bereits in den Entwicklungsabteilungen
verbrannt wurde, nur weil einer im Sourcecode statt == ein einfaches =
verwendet hat.
Ich habe bestimmt schon mehrfach stundenlang deswegen vor den Debugger
gehockt (und ich werde es auch wieder tun).
Gruß,
Michael
Häma Tom schrieb:> Ist Euch Helden mal in den Sinn gekommen, daß sich Menschen nicht> freiwillig> mit solch einer ''*\}]{³² -Sprache auseinandersetzen?
Umso schlimmer. Wenns nicht freiwillig ist, dann ist es also kein Hobby
sondern dein Beruf. Also kriegst du Kohle dafür und solltest dir dein
Geld auch verdienen!
Ich finde C deutlich einfacher zu erlernen als z.B. Französisch oder
Latein.
Michael Appelt schrieb:> Hallo,>> wer weiß schon, wieviel Geld bereits in den Entwicklungsabteilungen> verbrannt wurde, nur weil einer im Sourcecode statt == ein einfaches => verwendet hat.
man könnte auch einfach die Warnungen vom Compiler ansehen, dort steht
es mit drin.
Häma Tom schrieb:> Ist Euch Helden mal in den Sinn gekommen, daß sich Menschen nicht> freiwillig> mit solch einer ''*\}]{³² -Sprache auseinandersetzen?
Die Zeiten, in denen der Physik oder Mathelehrer per Direktor-Entscheid
dazu verdonnert wurde, während der Sommerferien programmieren zu lernen
um im nächsten Semester Informatik-Unterricht anbieten zu können, sind
vorbei.
In der Zwischenzeit wurden genügend und auch gute Informatiker
ausgebildet, so dass es jeder einen ausgebildeten und willigen
Informatiker in der Nähe hat, der sein Handwerk versteht. Wenn man schon
nicht selber Hand anlegen will.
Schliesslich zwingt einen ja auch keiner dazu, die Wasser-Installation
im neuen Eigenheim selbst zu machen. Dazu gibt es genügend
Installateure, die das gelernt haben, die ihr Handwerk verstehen und die
das auch können. Nur: Wenn man es selber macht, dann muss man das eben
lernen und sich mit der Materie auseinandersetzen.
Das gilt im übrigen für so ziemlich alle Lebensbereiche. Nur scheinbar
wird es bei Computern akzeptiert, mit nicht viel mehr als einer vagen
Ahnung und einer Ausbildung an der Youtube-Universität an Dinge
ranzugehen, die (noch) ein paar Schuhnummern zu gross sind. Irgendwie
scheint jeder in Mitteleuropa (und in den USA ist das wahrscheinlich
auch nicht anders) Spezialist zu sein, wenn es um Computer geht. So
schwer kann programmieren nicht sein, immerhin hat man es ja erfolgreich
geschafft, seinen Netgear WLAN Router erfolgreich einzuschalten und die
Kabel anzustecken. Und erst der Blueray-Player! So virtuos wie der
bedient werden kann, wird es dann ja wohl auch kein Problem sein, da mal
schnell ein neues Programm zu schreiben, immerhin konnte man ja den BIOS
Update auch alleine bewerkstelligen.
Es ist eigenartig. Niemand der unfallfrei einen neuen Aufkleber auf die
Heckscheibe seines Autos kleben kann, würde sich als angehender
KFZ-Mechaniker ansehen. Und doch ist genau das bei Computern bzw. beim
Programmieren der Fall. Nicht immer und nicht bei allen, die seltsame
Fragen stellen, aber immerhin bei so vielen, dass es durchaus als
Default angenommen werden kann. Auch wenn man manchmal dem TO Unrecht
tut.
Karl-Heinz schrieb:
>So schwer kann programmieren nicht sein, immerhin hat man es ja>erfolgreich geschafft, seinen Netgear WLAN Router erfolgreich> einzuschalten....
...und schon wieder ist sie da, die unverhohlene Häme!
:-(
Gut, dann bringe ich es auch mal sarkastisch auf den Punkt:
Nein, Programmieren kann so schwer nicht sein, schließlich muß man nur
einen Algorithmus für das Problem finden und diesen dann in einer
Programmiersprache formulieren.
Aber halt -da fängt das Problem an: Wenn man eine Kauderwelsch-Sprache
wählt oder gar wählen mußte, bei der abhängig vom Compiler aus dem
gleichen Quelltext völlig unterschiedliche Programme generiert werden,
ja dann hat man schlechte Karten! Dann geht die Suche nach Fehlern los,
wo keine sind und umgekehrt...
Häma Tom schrieb:> ...und schon wieder ist sie da, die unverhohlene Häme!
und dein sinnloses Geflame ist besser? Die angebliche Häme hat
wenigstens etwas mit dem Thema zu tun, du willst nur flamen...
Häma Tom schrieb:> Aber halt -da fängt das Problem an: Wenn man eine Kauderwelsch-Sprache> wählt oder gar wählen mußte,
Dann sag uns doch mal welche Sprache so viel besser ist.
Wir lernen gerne dazu :-)
Justus schrieb:
>Die angebliche Häme hat>wenigstens etwas mit dem Thema zu tun, du willst nur flamen..
Das ist nicht richtig -ich konnte nur vor meinem Beitrag 10 Andere
lesen,
die nur dazu dienten, den Fragesteller zum Affen zu machen. Da platzte
mir
der Kragen.
Udo schrieb:
>Dann sag uns doch mal welche Sprache so viel besser ist.
Gerne: Purebasic oder Lazarus
>Wir lernen gerne dazu :-)
Das bezweifle ich.
Jörg Esser schrieb:> und wurde meist von Gymnasiasten zitiert.
Ist halt die einzige Schulform in der Latein gelehrt wird, insofern gibt
es da tatsächlich einen Zusammenhang.
Häma Tom schrieb:> bei der abhängig vom Compiler aus dem> gleichen Quelltext völlig unterschiedliche Programme generiert werden,
Dann zeig doch mal so ein Beispiel!
MfG Klaus
Häma Tom schrieb:> Udo schrieb:>>Dann sag uns doch mal welche Sprache so viel besser ist.> Gerne: Purebasic oder Lazarus
Die ist also so viel besser?
Mal sehen:
Du könntest damit ein Betriebssystem wie Linux programmieren?
Die Sprache ist für den kleinsten µC bis zu dem dicksten Multicore
verfügbar, meist sogar als kostenloser Compiler?
Du kannst damit hardwarenah programmieren, wenn du das willst/must?
Du kannst damit Projekte im Umfang von vielen 1000 Sourcecodedateien
handeln?
....
Du siehst es gibt unterschiedliche Blickrichtungen was "gut" bedeutet.
Ich habe keine Probleme mich inb eine der beiden Sprachen einzuarbeiten
(Basic oder Pascal) wenn es für ein Projekt nötig sein sollte, du
bezeichnest C aber als
Häma Tom schrieb:> Kauderwelsch-SpracheHäma Tom schrieb:> solch einer ''*\}]{³² -Sprache
Gleichzeitig unterstellst du mir, daß ich nicht lernwillig bin.
Häma Tom schrieb:>>Wir lernen gerne dazu :-)> Das bezweifle ich.
Sorry aber das ist so armselig.
Klaus schrieb:
>Dann zeig doch mal so ein Beispiel!
Na, aber gern! Ich habe mir mal den Spaß gemacht und "C Problem" in das
Suchfeld eingegeben. Damit fand ich nur ca. 69000 Threads. Ich hätte mit
mehr gerechnet.
:-(
Häma Tom schrieb:> Klaus schrieb:>>Dann zeig doch mal so ein Beispiel!>> Na, aber gern! Ich habe mir mal den Spaß gemacht und "C Problem" in das> Suchfeld eingegeben. Damit fand ich nur ca. 69000 Threads. Ich hätte mit> mehr gerechnet.
Wenn ich den Code
1
CProblem
versuche zu kompilieren, bekomme ich gar kein Programm.
Ich hatte aber nach einem kompilierbaren Beispiel gefragt das
> abhängig vom Compiler aus dem> gleichen Quelltext völlig unterschiedliche Programme generiert
MfG Klaus
Häma Tom schrieb:> Na, aber gern! Ich habe mir mal den Spaß gemacht und "C Problem" in das> Suchfeld eingegeben. Damit fand ich nur ca. 69000 Threads. Ich hätte mit> mehr gerechnet.
Dann musst du nach:
B Problem
suchen, damit scheinen noch mehr konfrontiert zu sein.
Das sagt jetzt aber nicht mehr oder weniger aus, als das es einfach viel
mehr AVR-Programmierer gibt die C benutzen, als diejenigen die ihren AVR
in Lazarus programmieren.
Wenn ich in Google "Probleme bei der Übersetzung nach Kisuaheli"
eingebe, kriege ich auch wesentlich weniger Treffer, als wenn ich nach
Problemen in der Übersetzung Deutsch-Englisch oder Deutsch-Spanisch
suche.
Das es in C Probleme gibt, streitet doch keiner ab. Das räumen auch die
Entwickler von C unumwunden ein, dass die Syntax an ein paar Stellen
hätte besser gemacht werden können.
Das ändert aber nichts daran, dass man seine Sprache von der Pieke auf
lernen muss.
Was soll eigentlich die Diskussion mit diesem "Häma Tom"?
Da verteidigt ein Low-Performer den anderen Low-Performer (was klar aus
der Antwort auf die Frage nach einem Beispiel hervorgeht).
Das ist absehbar fruchtlos. Trolle füttern.
Häma Tom schrieb:> Na, aber gern! Ich habe mir mal den Spaß gemacht und "C Problem" in das> Suchfeld eingegeben. Damit fand ich nur ca. 69000 Threads.
Ok, deine Logik ist übertragen so:
Der Pannendienst fährt 1000 mal so oft wegen einem VW Golf raus, als
wegen eines ford t modells.
Also muss das ford t modell 1000 mal besser/zuverlässiger sein.
Ich sagte es schon: Armselig!
schreibt doch die Konstante links:
10 == n;
dann würde der Compiler bei
10 = n;
meckern...
Nur eine Frage der Gewohnheit, übringens bei allen Bedingungen...
Karl Heinz schrieb:> Es ist eigenartig.
Auch dein Vortrag ist irgendwie eigenartig, ist dies doch kein Forum
voller Informatiker, sondern Elektroniker, auf die eigentlich das
Gleiche zutrifft: Hier meint doch auch jeder, als Elektroniker koennte
er genauso gut oder besser Software entwickeln, wie ein Informatiker.
Aber die Elektroniker fuehlen sich von dir wahrscheinlich nicht
angesprochen...
Quack schrieb:> Hier meint doch auch jeder, als Elektroniker koennte> er genauso gut oder besser Software entwickeln, wie ein Informatiker.
Was hat das damit zu tun, ich kenne Mathematiker, Physiker ja sogar
Lehrer, die 9 von 10 studierte Informatiker locker bzgl
Softwareentwicklung in die Tasche stecken.
Es kommt wenig auf die Studienrichtung an, viel wichtiger ist sich in
Neues einarbeiten zu können und zu wollen, sein Hirn zu benutzen und
sein Werkzeug zu beherrschen.
Udo Schmitt schrieb:> Was hat das damit zu tun, ich kenne Mathematiker, Physiker ja sogar> Lehrer
Es geht nicht um irgendwelche Leute, die du kennst, sondern um die Leute
hier im Forum.
Udo Schmitt schrieb:> Quack schrieb:>> Hier meint doch auch jeder, als Elektroniker koennte>> er genauso gut oder besser Software entwickeln, wie ein Informatiker.>> Was hat das damit zu tun, ich kenne Mathematiker, Physiker ja sogar> Lehrer, die 9 von 10 studierte Informatiker locker bzgl> Softwareentwicklung in die Tasche stecken.> Es kommt wenig auf die Studienrichtung an, viel wichtiger ist sich in> Neues einarbeiten zu können und zu wollen, sein Hirn zu benutzen und> sein Werkzeug zu beherrschen.
und .... am Anfang nicht zu viel zu wollen.
Wer in Mathe Schwierigkeiten mit dem Umformen von einfachen Gleichungen
hat, aber über Differentialgleichungen diskutieren will, dem lege ich
auch erst mal nahe, doch bitte seine Defizite auszuräumen, weil das nun
mal recht witzlos ist, wenn man in seinen Ausführungen ständig Fehler
auf Trivialniveau korrigieren muss anstatt sich auf das an dieser Stelle
wesentliche, die Lösungsidee die hinter einer Methode steckt,
konzentrieren zu können. Das der eine oder andere Flüchtigkeitsfehler
schon mal vorkommt - geschenkt. Aber wenn man jede einzelne Zeile
untersuchen muss, ob noch alle Terme vorhanden sind, oder ob er schon
wieder einen Vorzeichenfehler eingebaut hat, dann wird es mühsam. Sowohl
für ihn als auch für mich.
Sicher, ich schiess schon mal übers Ziel hinaus. Trotzdem stehe ich
dazu. Lernen beginnt am Anfang der Materie und nicht irgendwo
mittendrinn. Und genau das ist es, was ich nicht müde werde zu
bekritteln (inklusive fehlendem Lehrbuch)
Auch hier im Forum gibt's Menschen aller Coleur. Das spielt doch keine
Rolle. Fakt ist, wenn ich ein Werkzeug verwenden will, muß ich damit
umgehen könnnen. Das trifft auf einen Bagger genauso zu wie auf eine
Programmiersprache. Wenn ich das Werkzeug nicht beherrsche, kann ich
damit den größten Unsinn anstellen. Da muß man sich doch auch mal
gefallen lassen, wenn man auf Fehler hingewiesen wird. Ich für meinen
Teil bin dankbar dafür, weil ich daraus lernen kann und die gleichen
Fehler (wahrscheinlich) nicht noch einmal mache. Das hat auch wenig
damit zu tun, ob man das als Hobby macht oder beruflich. Das eine will
man tun, das andere muß man. Für beide Varianten muß ich aber mein
Werkzeug beherrschen, und das lernt man, indem man aus gemachten Fehlern
eine Lehre zieht.
ich schrieb:> umgehen könnnen. Das trifft auf einen Bagger
gutes Beispiel.
Niemand käme wohl auf die Idee, einen Bagger mittels Trial&Error
beherrschen zu können.
"aus einer Source immer wieder andere Programme generiert werden"
Zum Glück, den manchmal ruft man Unterprogramme via RCALL, manchmal via
BALR. Gut daß der GCC das für mich macht, egal ob AVR oder Mainframe
(ja, den Befehl gab's schon vor ARM). Das macht der sogar, obwohl ich
Informatik studiert habe. Vieleicht weil ich ihm's nicht verraten hab.
Wie war das noch mal mit portabel. In C manchmal schwierig, sonst oft
nicht existent.
BTW, Basic brauch ich natürlich auch. Als Office-Macro!