Hallo ich bin sehr neu auf diesen Gebiet und habe erst vor kurzen
angefangen.
Ich habe derzeit ein zienlich großes Verständnis Problem ohne dass ich
einfach nicht weiter machen möchte. Da ich der Meinung bin das man die
Grundlegenden sachen verstehen muss um weiter zu kommen.
Es handelt um folgenden Quelltext
Wenn ich diesen Quelltext mal theoretisch durch gehe komm ich auf
folgende Ergebnisse:
Ausgangssituation:
1
swtch = High;
2
res = 0;
3
swtchState=0;
4
mode = 0;
Programmstart:
1
swtch = High;
2
res = High;
3
mode =0;
4
swtchState = High;
Resultat LEDs bleiben aus da res != Low und somit sich der mode nicht
ändert.
1.Tasterbetätigung
1
swtch = low;
2
res = low;
3
swtchState = High;
4
mode = 1;
5
swtchState = low;
Resultat alle LEDs an da mode=1
2.Tasterbetätigung
1
swtch = HIGH
2
res = HIGH <-----------
Somit dürfte jetzt eigentlich nix weiter passieren da res weiterhin auf
HIGH bleibt und der mode nur hochgezählt wird wenn res == LOW ist
ABER der mode wird trotzdem hochgezählt und somit fangen die LEDs an zu
blinken .
Nun meine Frage wieso da durch die Schalterbetätigung an res der Wert
HIGH übergeben wurde ????
Ich versteh das gerade nicht oder habe ich ein Denkfehler in der
Funktionsweise des Eingangs wo der Schalter sitzt
switch wird in jedem Programmdurchlauf abgefragt und der Wert an res
übergeben.
Zwischen dem ersten und dem zweiten Tastendruck ist lässt du ja auch mal
los.
Dann ist switch HIGH und res und switchState auch.
Wenn du jetzt wieder drückst, wird res = Low, switchState ist aber noch
High und das Spiel geht von vorne los.
Abgesehen davon, dass man das so eher nicht lösen wird, da der Taster
nicht entprellt ist und ein kurzer Tatendruck innerhalb eines
Blinkzyklus einfach "verschluckt" wird, passt der Code schon, würde ich
sagen.
Hi danke schonmal für deine Antwort .
Für mich nochmal zum verständnis :
Heist das jetzt der PIN ist dauerhaft auf High und nur wenn ich den
Taster drück der PIN auf Low gesetzt wird ?Den Taster habe ich in meiner
Schaltung mit einen 100 nanoFarad Kondensator geprellt denke mal das
reicht .
Nick Reuss schrieb:> Wieso der arme Taster oder war das ironisch gemeint
es heißt ENT-prellt nicht GE-prellt
Nick Reuss schrieb:> eist das jetzt der PIN ist dauerhaft auf High und nur wenn ich den> Taster drück der PIN auf Low gesetzt wird ?
Ich ging mal davon aus, dass das der Fall ist, weil sonst der Code
kompletter Blödsinn wäre.
Aber ob das tatsächlich der Fall ist, kann ich dir nicht beantworten.
Wie auch? Wenn du Fragen zu einer Schaltung hast, dann solltest du diese
auch posten und nicht nur einen Code.
Nick Reuss schrieb:> Harald Wilhelms schrieb:>> Der arme Taster.>> Wieso der arme Taster oder war das ironisch gemeint
Weil so ein Kondensator über kurz oder lang dir die Tasterkontakte
verschmoren wird.
Karl Heinz schrieb:> Weil so ein Kondensator über kurz oder lang dir die Tasterkontakte> verschmoren wird.
Und wenn jetzt die Frage kommt, warum das so ist, dann bis du dran mit
erklären.. ich habe den Code erklärt :-)
Karl Heinz schrieb:>>> Der arme Taster.>>>> Wieso der arme Taster oder war das ironisch gemeint>> Weil so ein Kondensator über kurz oder lang dir die Tasterkontakte> verschmoren wird.
Genau, er wird mit viel Strom geprellt.
Danke wieder was dazu gelernt .
Einen Schaltplan habe ich leider nicht habe nur diesen Versuchsaufbau .
Könnt aber vielleicht schnell eine erstellen nur leider kenne ich keien
Freeware Programme die für sowas gut sind .
Nutze hier ein ATmega168
vielleicht erkennt man auf den Bild bissel was .
Jetzt wird es immer lustiger.
Du verdrahtest SELBST auf dem Steckbrett den Schalter so, dass er gegen
Masse schaltet und bist dann erstaunt darüber, dass er das tut.
Du bist ja ein lustiger Zeitgenosse ;-)
:(
Ich ging davon aus das der Pin2 jedes mal zwischen Low und High wechselt
wenn man den Taster drückt .
Und wunderte mich daher das er bei High die Variable mode hoch zählt .
Aber es ist wohl eher doch so das er nur bei betätigen des Tasters den
Wert Low annimmt.
Nick Reuss schrieb:> Ich ging davon aus das der Pin2 jedes mal zwischen Low und High wechselt> wenn man den Taster drückt .
Nein, ein Taster behält seinen Zustand nicht bei, wenn man loslässt.
Also wenn du in deiner Anordung drückst, verbindet er den Pin mit Masse
und das bleibt so lange so, solange du gedrückt hältst. Und wenn du
loslässt geht der Pin wieder nach High.
Aber das sind doch die ABSOLUTEN Basics, die man wissen sollte, bevor
man sich mit nem uC auseinandersetzt, oder?
Ja wie gesagt war nen wirklich heftiger Denkfehler von mir und bin
ehrlich gesagt selber net drauf gekommen obwohl ich immer Taster
geschrieben hatte ^^.
Habt ihr vielleicht eine Empfehlung für ein Programm womit ich für sowas
Schaltpläne erstellen kann .
Beschäftige mich seit Wochen wieder mit E-Technik um am ende eine 7
Segment Anzeige zu Programmieren auf der dann eine Zahlenfolge erscheint
und dies soll dann alles mit einer 9V Block Batterie funktionieren .
Die meisten Bücher die ich gerade wälze haben leider zu wenig praktische
Beispiele wo genau erklärt wird warum ich das Bauteil einsetze und nicht
doch ein anderes.
Habe da wirklich noch viel vor mir ...
Danke für die Hilfe und den wink mit den Zaunpfahl .
> Könnt aber vielleicht schnell eine erstellen nur leider> kenne ich keien Freeware Programme die für sowas gut sind .
Vorschlag: Papier und Bleistift. Sicher hast Du auch einen Fotoapparat
oder ein Handy mit Kamera.
Mal im ernst: Ein bisschen Handarbeit ist durchaus ok, dafür muss man
sich nicht schämen.
Und wenn du nur mal eben schnell was skizzieren willst, um es z.B. zu
posten, kannsts du das auch online hier machen
https://www.circuitlab.com/editor/
Du kannst dann einen .png Export machen, den du hochladen kannst
Ich habe gerade von einem Freund die Info bekommen das ich sowas am
besten in Eagle machen soll da er mir dann auch Platinen herstellen
kann.
Werde mich wohl mal an dem Programm versuchen sowie das mal per Hand zu
zeichnen und zu berechnen.