www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ausgaenge bei Reset High, warum?


Autor: lulli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
also ich habe folgendes Problem:
Ich habe ein kleines Programm fuer den ATMEGA8515 geschrieben.
PORTD dient als Ausgang bei dem die Pins in einer gewissen Sequenz 
High/Low gwschaltet werden. Benutzt wird Timer1 Interrupt. Das 
funktioniert soweit auch gut, aber was mich irritiert ist, dass bei 
einem Reset die Pins fuer etwa eine Sekunde auf High stehen(in der 
Simulation ist das nicht so!). Es sind auch nur die Pins auf High, 
welche ich als Ausgaenge definiert habe, also wenn ich z.B. DDRD auf 
0x0F setze sind nur PD0...PD3 fuer etwa eine Sekunde auf High.
Dieses Verhalten habe ich vorher nicht festgestellt, erst seitdem ich 
den Timer mit 1/64tel des Systemtakts laufen lasse tritt das auf.
Allerdings wird der Timer erst initialisiert nachdem die Ausgaenge 
bereits definiert sind.
Zuerst habe ich vermutet, dass bei einem Reset vielleicht alle Ausgaenge 
auf High gesetzt werden, aber dann muessten ja alle Pins High sein, 
oder?

Wuerde mich freuen, wenn mir jemand dieses Verhalten erlaeutern kann.

Danke vorab und nen schoenen Wochenstart
lulli

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim RESET werden alle Pins auf Hochohmig (Eingang ohne Pullup) 
geschaltet.
Was danach passiert ist das was dein Programm daraus generiert...

Autor: lulli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ja so hatte ich das aus dem Datenblatt auch interpretiert.
Habe nun festgestellt, dass meine Bits 'invertiert' angesteuert werden 
muessen. Kann mir ds zwar nicht erklaeren, aber es passiert folgendes:
Hier mein Testprogramm,

#include <stdint.h>
#include <string.h>
#include <avr/io.h>

int main(void) {

    DDRD = 0x3F;         // Port als Ausgang
    PORTD = 0x04;        //PD2 High

   while(1){
    }


    return 0;
}

mein PD3 ist low, der Rest High...
Benutze das STK500 und AVR Studio.
PORTD ist an LEDs angeschlossen und es leuchten LEDS0,1,3,4,5
Irgendwie habe ich nen Wurm fabriziert glaube ich.
Gruss mit Hoffnung auf klaerung;)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die LEDs vom STK500 arbeiten bekanntermassen umgekehrt, 0=an 1=aus.

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm,
habe zwar kein STK500 , aber ich wette das die LEd's gegen VCC 
geschaltet sind (low activ) und deswegen natürlich nur leuchten wenn du 
die Pins auf 0 setzt.

Gruß

Autor: lulli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke.
Daran erkennt man die echten Anfaenger.
Leuchtet ein und wird sich gemerkt;)

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.