Guten Tag Zusammen,
ich habe vor kurzem damit begonnen mich ein wenig
mit der Programmierung von Atmel Microcontrollern schlau zu machen,
und habe mich dabei für den ATMega 328PU entschieden.
Leider verstehe ich nicht ganz warum bei meinen C Programm (siehe Bilddatei),
bei einer Zustandsänderung am Input es ein paar Sekunden dauert
bis der Atmel am Ausgangspin sein Pegel ändert (visualisiert durch LED).
Sollte sich die LED nicht direkt ausschalten ?
Zur Info der Input wird per Pullup Widerstand auf 5V gezogen.
Falls Jemand eine Idee hat woran das liegen könnte würde mich
das extrem interessieren.
Leider verstehe ich nicht ganz warum bei meinen C Programm (siehe
Bilddatei)
Kein Source Code als Bilddatei! (was ist den los in den letzten Monaten)?
Alle verblödet oder was? Sorry, aber solangsam macht das echt kein Spaß mehr.
edit:
@Jonas
wie wäre es mit einem schaltplan? evtl. hast du ja versucht das entprellen per kondensator zu lösen... und der ist einfach zu groß?
Nachtrag:
Das ist mein erster Beitrag, deshalb noch ein paar Informationen anbei 😅
Ein Schaltplan existiert noch nicht.
Ich habe aber den Atmel nach Minimalbeschaltung angeschlossen
(VCC,AVCC,GND + Abblockkondensator mit 100nF zwischen AVCC & GND).
Die LED an PD5 ist über ein Widerstand gegen Masse, und der INPUT ist über
ein 470 Ohm Widerstand zum an oder ausschalten der LED entweder an 5V oder Potentialfrei.
Hier ist der Source Code:
ein 470 Ohm Widerstand zum an oder ausschalten der LED entweder an 5V
oder Potentialfrei.
"Potentialfrei" mögen digitale Eingänge garnicht. Schalt den entweder gegen 5V oder 0V/GND.
Oder pack einen Pull-Down daneben. Oder aktiviere den internen Pull-Up und verwende deinen Tast-Widerstand mit "Potentialfrei oder GND".
Hi Malte,
danke für deine Antwort.
Ich schalte den Input über den Pullup auf 5V, per jumper Kabel am Bredboard.
Das heißt wenn ich die 5V abklemme hat der Input kein Potential.
Hi Malte,
danke für deine Antwort.
Ich schalte den Input über den Pullup auf 5V, per jumper Kabel am
Bredboard.
Das heißt wenn ich die 5V abklemme hat der Input kein Potential.
Das ist dann kein Pullup. Dann floatet der Eingang. Das ist Mist.
und der INPUT ist über ein 470 Ohm Widerstand zum an oder ausschalten der
LED entweder an 5V oder Potentialfrei.
Potentialfrei geht gar nicht. Wenn der Pin in der Luft hängt, dann schleicht sein Eingang irgendwann irgendwo hin. Es ist Zufall, dass er bei dir die LED sogar schaltet nach einer Sekunde.
Der Input braucht einen Pullup, wenn der Taster/Schalter nach GND geht oder er braucht einen Pulldown, wenn er nach VCC geht. Ein Widerstand in Reihe ist überflüssig; ein kleinerer kann sinnvoll sein, wenn du an dem Pin noch einen Kondensator hängen hast für die Trivialentprellung.
Dann mal einen! Einen, den der Rest der Welt auch versteht: Leitungen, die miteinander verbunden sind, haben einen Punkt an der Stelle. Große rote 'X' gibt es nicht in Schaltplänen. Und weder der Taster noch die LED sind eingezeichnet. Das darf zur Not auch eine Handskizze sein, die du abfotografierst.
Der Code muss auch noch nachgebessert werden. Stichwort Tastenprellen. So läuft die While Schleife hunderte Male pro Sekunde durch und je nachdem wie der Taster gerade prellt flackert die Led.
Potentialfrei geht gar nicht. Wenn der Pin in der Luft hängt, dann
schleicht sein Eingang irgendwann irgendwo hin. Es ist Zufall, dass er
bei dir die LED sogar schaltet nach einer Sekunde.
AGREE !!!
Wir hatten mal einen Azubi, der hatte es geschafft, in einer Hausaufgabe zur "kombinatorischen Logik" wild Gatterausgänge (damals noch TTL) miteinander zu verbinden. Sein Lehrmeister verstand die Welt nicht mehr und kam dann verzweifelt zu mir...
Wir schlugen dann zusammen "The TTL Data Book for Design Engineers" (Texas Instruments) auf und ich zeigte ihm die prinzipielle Ausgangsschaltung eines TLL-Bausteins. So was hatte er noch nie gesehen, schon gar nicht in der Berufsschule. Nach 30 Minuten stand er auf und erklärte mir, er hätte verstanden worin seine Eselei gelegen hatte. Btw, das war ein richtig guter Mann, hatte dann seine Ausbildung als Jahrgangsbester abgeschlossen.
Was ich damit sagen will: Es lohnt sich durchaus, besonders für Anfänger wie der TO, auch mal in alten Daten- oder Fachbücher zu schmökern, und sich mit zunächst uninteressant-scheinenden Details zu beschäftigen.
Um es dem TO leichter zu machen, habe ich je einen Auszug aus dem Tietze/Schenk (5. Auflage) (-> 0963.jpg) sowie aus RCA "COS/MOS Integrated Circuits" (Ausgabe 1977) (-> 0962AB.jpg), jeweils mit Schaltungserklärungen, angehängt. Wer die Funktionsweise eines MOSFET kapiert hat, sollte mit diesen Erklärungen verstehen, wieso man entsprechende Bauteileingänge niemals offen lassen soll.
Ein Widerstand in Reihe ist überflüssig; ein kleinerer kann sinnvoll
sein, wenn du an dem Pin noch einen Kondensator hängen hast für
die Trivialentprellung.
Sobald die Leitungen an die Außenwelt gehen, ist ein bisschen Trennung nicht die dümmste Idee. Ein Widerstand und ein Kondensator sind gegen kleinere ESD-Events nicht verkehrt.
Und warum soll der Widerstand kleiner sein?
Für gleiche Filterwirkung müsste der Kondensator dann unnötig größer werden.
Bei störender Umgebung gehört zu dem TP-Filter dann allerdings ein Schmitt-Trigger Eingang.
Und warum soll der Widerstand kleiner sein?
Für gleiche Filterwirkung müsste der Kondensator dann unnötig größer
werden.
Der Widerstand soll den Taster beim Entladen des Kondensators schützen. Wenn es dann auch noch zum Minimalstrom des Tasters passt, dann ist es noch besser.
Bei störender Umgebung gehört zu dem TP-Filter dann allerdings ein
Schmitt-Trigger Eingang.
Ich habe es jetzt mal mit Fritzing ausprobiert,
ich hoffe daran kann man besser erkennen was gemeint ist.
Hier ist der Schaltplan von der alten Bestückung.
Wenn es denn den einen gibt, und den anderen nicht, weiß jeder mit wenigstens ein bisschen Resthirn, welcher gemeint ist.
Nebenbei bin ich mir fast sicher, schon welche ohne Bindestrich im Aufdruck gesehen zu haben. Dann wäre es eher so, dass es zu dem Chip kein Datenblatt gibt, sollte er im Datenblatt nur mit Bindestrich aufgeführt sein. Ich weiß es ehrlich gesagt nicht, aber es ist mir auch völlig egal.
Was für ein kleinkarierter Kleingeist muss man bitte sein, um sich an so was aufzuhängen?
Was für ein kleinkarierter Kleingeist muss man bitte sein, um sich an so
was aufzuhängen?
Das war für mich die diplomatischste Art, Jonas klarzumachen, dass er "schludert". Nicht nur bei der Bezeichnung des uC, sondern auch bei seinem Quellcode (Einrückungen inkonsistent, Wertzuweisungen inkonsistent), bei seinem Schaltplan (Linien inkonsistent, Kontaktpunkte inkonsistent), seinen Bildern (Quellcode als Bild, dann Screendump als JPG), seiner Problembeschreibung, und seiner Verwendung von Begrifflichkeiten (und auch bei Groß- und Kleinschreibung und Kommasetzung seiner Beiträge).
Du hast insofern recht, als du mich, was Qualität betrifft, weit auf der "Zen and the Art of Motorcycle Maintenance"-Seite des Spektrums verortest. Aber es braucht in diesem Metier halt erst einmal einiges an Erfahrung, um zu wissen, wo man ungestraft chaotisch sein kann und wo nicht.
Das war für mich die diplomatischste Art, Jonas klarzumachen, dass er
"schludert".
In dem Fall musst du dich deinem eigenen Vorwurf stellen.
Da wäre es doch wesentlich angebrachter etwas wie "übrigens KANN es bei der Bauteilebezeichnung um einzelne Zeichen gehen, die einen Unterschied in der Funktion machen" zu schreiben.
Ein kindisches "isses a oder b? Ätsch a gibst gar nicht", wirkt da wenig kompetent.
Du hast insofern recht, als du mich, was Qualität betrifft, weit auf der
"Zen and the Art of Motorcycle Maintenance"-Seite des Spektrums
verortest
Mit dieser Einschätzung liegst du falsch. Ich hatte dich weit auf der kindischen Seite verordnet, dass hast du mit deiner Erklärung zu Teilen wettmachen können.
Zen and the art of motorcycle maintenance hörte/las ich gerade zum ersten Mal. Und sehr "zen-ig" wirkte es nicht auf mich.
Ich hatte also gefragt, ist es wirklich a oder nicht doch b, worauf Jonas geantwortet hat, es sei weder a noch b sondern c!
Der nicht-picopower Atmega328 ist ja uralt, und insofern ist es wahrscheinlich, dass Jonas über einen Atmega328P berichtet. Aber den gibt es nicht in der Bauform -U. Wenn das Marking bei Jonas also tatsächlich "ATMEGA328P U" lautet, dann würde mich interessieren, ob das ein echter Atmel/Microchip-IC ist, und wäre an einem Foto interessiert.
Der sieht seltsam aus. Im Vegleich zu mir bekannten fehlt bei dir die helle Einfärbung der Schriftzeichen, und der Schriftsatz hat andere Proportionen. Vor allen das "G" ist auffällig anders. Bei der "2" und der "3" sieht man auch deutliche Unterschiede.
Einmal mit fettigen Fingern angefasst, und die Sache ändert sich. Ich würde jetzt nicht sofort "China-Fälschung" schreien, zumal die Bilder ganz sicher nicht bei gleicher Beleuchtung entstanden sind. Und auch bei Original-Teilen kann sich im Laufe der Jahre der Hersteller dazu entscheiden, die Beschriftung zu variieren, das hängt oft nur vom jeweiligen Herstellungsort ab (Atmel hat keine eigene Halbleiterfertigung, sondern lässt von Auftragsfertigern à la TSMC fertigen, und wer auch immer die Chips dann in Gehäusen unterbringt, beeinflusst das Aussehen).
Seitdem Atmel von Microchip geschluckt wurde, kann sich das geändert haben; Microchip betreibt eigene Halbleiterwerke, nur ob dort auch die (ehemaligen) Atmel-Produkte gefertigt werden?
Es hat eindeutig beide
Beschriftungsarten über die Jahre gegeben.
Nun, Deine helleren sind noch mit Siebdruck beschriftet, die dunkleren sind lasergraviert. Der zweite von Steve gezeigte ist aber auch lasergraviert, beim ersten ist das auch anzunehmen, aber das Bild zu schlecht, um das mit Gewissheit sagen zu können.
Siebdruck hat den Nachteil, daß die Beschriftung nur einen Wisch mit einem Lösungsmittel braucht, um wegzusein.
Putz mal deine Glaskugel - du siehst Gespenster.
Die LED soll genau dem Input durch den Taster folgen, nicht mehr und
nicht weniger.
Das tut er auch weiterhin, wenn eine saubere Entprellung implementiert wurde. Nur eben ohne undefinierte Zwischenstände.
Wenn er es schon lernen will, dann gleich richtig. Sonst kommt irgendwann der Punkt, wo nicht mehr nur eine LED gesteuert werden soll und es geht schief weil die Grundlagen nicht verstanden sind. Genau wie bei dir.
Das zeigt Größe, Fehler eingestehen zu können! Auch wenn sie nicht an mich gerichtet war, ist deine "Rumblafferei" damit wieder gut gemacht, zumindest aus meiner Sicht. Ich möchte hiermit den Vorwurf des "Forist seins" zurücknehmen. Der hatte nie die Größe, sich zu entschuldigen.