Latenz am Port Atmel ATMega 328PU

OP #7496796
Lesenswert?

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.

Vielen Dank im voraus

Gruß

Jonas

Angehängte Dateien:
#7496805
Lesenswert?

Jonas S. schrieb:

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ß?

OP #7496852
Lesenswert?

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:

1
#include <avr/io.h>
2
#include <util/delay.h>
3
#define F_CPU 8000000
4

5
int main(void){
6

7
 
8
  DDRD = 0b00100000; //set PD5 as an OUTPUT SOURCE
9
  PORTD = 0b00000000;
10

11
  while(1)
12
  
13
  {
14
       if((PIND & (1<<PD4)))
15
       {
16
        PORTD |= (1<<PD5);
17
        
18
        }
19
        else
20
        {
21
          PORTD &= ~(1<<PD5);
22
          
23
        }
24
            
25
  }
26
  return(0);
27
}
Angehängte Dateien:
#7496860
Lesenswert?

Jonas S. schrieb:

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.

Jonas S. schrieb:

Ein Schaltplan existiert noch nicht.

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.

#7496868
Lesenswert?

Auch so ein Plan reicht:

1
       VCC      VCC
2
        +        +
3
        |        |
4
       .-.       |
5
       | |    .--o------.
6
       | |    |         |
7
       '-'    |         |
8
        |     |     PD5 o----.
9
        |     |         |    |
10
        o-----o PD4     |   .-.
11
        |     |         |   | |
12
      | o     |         |   | |
13
    |=|>      |         |   '-'
14
      | o     |         |    |
15
        |     |         |    |
16
        |     |         |    V ->
17
        |     |         |    -
18
        |     |         |    |
19
        |     '---o-----'   ===
20
       ===        |         GND
21
       GND       ===
22
                 GND

Ich muss aber zugeben, dass das Beispiel für eine Tastenabfrage nicht gerade gelungen ist (unter der Überschrift "Absolute Beginner": https://www.mikrocontroller.net/articles/Absolute_Beginner-AVR_Steckbrettprojekte#Taster_abfragen

#7496911
Lesenswert?

Klaus H. schrieb:

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.

just my 2ct

Angehängte Dateien:
#7496954
Lesenswert?

Klaus H. schrieb:

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.

#7496986
Lesenswert?

Rainer W. schrieb:

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.

Haben die Atmel-μCs nicht sowieso einen?

#7497943
Lesenswert?

Sebastian W. schrieb:

Den gibt es nicht. LG, Sebastian

Noch so ein Forist. Einfach zum Kotzen...

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?

Sorry fürs OT, aber das musste raus.

#7498090
Lesenswert?

J. T. schrieb:

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.

LG, Sebastian

#7498098
Lesenswert?

Sebastian W. schrieb:

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.

Sebastian W. schrieb:

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.

#7498109
Lesenswert?

J. T. schrieb:

"isses a oder b? Ätsch a gibst gar nicht"

Ich hatte im Beitrag #7496903 gefragt:

Geht es hier wirklich um einen Atmega328PU? Oder nicht doch um einen Atmega328P-PU?

Jonas S. hat darauf im Beitrag #7497468 geantwortet:

es geht um einen ATMEGA328P U.

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.

Aber noch vermute ich Schludrigkeit ...

LG, Sebastian

Gast #7498153
Lesenswert?

Jonas S. schrieb:

Anbei das Bild vom Gehäuse des Microcontrollers.

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.

Angehängte Dateien:
#7498161
Lesenswert?

Steve van de Grens schrieb:

Da ist die Schrift deutlich heller.

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?

Gast #7498164
Lesenswert?

Harald K. schrieb:

Ich würde jetzt nicht sofort "China-Fälschung" schreien

Ich auch nicht. Selbst wenn, es könnte eine gute Fälschung sein.

Sollte der Chip jedoch unerwartete Probleme bereiten, würde ich ihn zum Vergleich mal austauschen bevor ich Stunden der Fehlersuche darin versenke.

#7498178
Lesenswert?

Malte _. schrieb:

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.

Gast #7498194
Lesenswert?

Rainer W. schrieb:

Chris K. schrieb:

Der Code muss auch noch nachgebessert werden.

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren