mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Spannungsabfall an den Ports


Autor: Stefan B. (-stefan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Hänge gedanklich gerade an folgendem Problem.
Mir viel auf, dass wenn ich die delay.h wie sie jeder kennt sprich 
unverändert etc anspreche fallen bei mir die Spannungen an den Ports 
beträchtlich ab. Also habe ich einen neuen Atemga ausgepackt. Hier die 
Ausgänge nicht mit externen Schaltungen belastet. Was dabei heraus kommt 
sieht man am besten mit dem Oszi und dem Quellcode.

Folgend 3 Versuche.

Wo ist mein Fehler?

Komme da gerade echt nicht weiter. Vielleicht übersehe ich auch nur eine 
Kleinigkeit.

Autor: Stefan B. (-stefan-)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
1. Versuch:

Oszibild im Anhang. Quellcode hier:

#######################################################

#include <avr/io.h>

#define F_CPU 10000000UL
#include <util/delay.h>

int main (void){

  PORTD |= (1<<PD2);

  while(1){}

}

#####################################################

Autor: Stefan B. (-stefan-)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
2. Versuch:

Oszibild im Anhang. Quellcode hier:

#######################################################

#include <avr/io.h>

#define F_CPU 10000000UL
#include <util/delay.h>

int main (void){

        _delay_ms(1):
  PORTD |= (1<<PD2);

  while(1){}

}

#####################################################

Autor: Stefan B. (-stefan-)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
3. Versuch:

Oszibild im Anhang. Quellcode hier:

#######################################################

#include <avr/io.h>

#define F_CPU 10000000UL
#include <util/delay.h>

int main (void){

        _delay_ms(10):
  PORTD |= (1<<PD2);

  while(1){}

}

#####################################################

Autor: Stefan B. (-stefan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie man sieht werden die High-Pegel immer kürzer was zum messbaren 
Spannungsabfall führt wenn man mit einem 0-8-15-Spannungsmesser ans Werk 
geht. Aber, wo ist der Fehler, dachte immer der Atmeag durchläuft die 
delay-Schleife, gibt Spannung auf den Port und tut dann in while(1) 
nicht mehr. Sprich es müsste immer ein High-Pegel am Atmega anliegen.

Ps. Das Problem tritt auch auf, wenn man die Delay-Anweisung selber 
schreibt. Was dann auch schnell auffällt dass das Problem auch eintritt 
wenn man for-Schleifen nutzt.

Zusätzliche Info:
Externer Quarz: 10Mhz
Optimierung des Compiers: Aus (Tritt aber auch auf, wenn man optimiert)
Stromversorgung über ISP: Die bleibt auch konstant.
Noch was vergessen????

Finde den Fehler einfach nicht

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Watchdog Fuse eingeschaltet.

Autor: Stefan B. (-stefan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, das war das Problem!!!!!!!!!!!!!!!!!!!!!!!

Vielen vielen Dank für die Antwort. Hat mir den Abend gerettet!

Vielen Dank,
Stefan

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.