mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PORTA blink ungewollt


Autor: Mat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

hab ein Problem mit meiner LED an PORTA-3 ( geht auch an anderen Pins 
net ).

Sobald ich PA3 als Ausgang definiere fängt dieser an zu blinken, wenn 
ich nun denn PORT auf 0xFF setzte ist die LED aus ( LOW aktiv ), setze 
ich den PORT auf 0x00 - oder setze ihn garn nicht ( nur DDR ) - blinkt 
die LED.

Der PORT ist alt. für Adressierung eines externen Speichers, den ich 
allerdings nicht benutze.

Zum Test hab ich ein minimalstes Programm geschrieben um andere Fehler 
aus dem Programm auszuschließen.

Programm :
#include <stdio.h>
#include <stdlib.h>
#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>

int main(void)
{
  DDRA |= (1<<PA3);
  PORTA = 0x00;
  
  while(1)
  {

  }
  return 0;
}

Hat jemand einen Tipp an was das liegen könnte oder wie ich es beheben 
kann.

danke im vorraus
Mat

Autor: Mat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
EDIT :

Optimierung ist aus bzw. -O0 geschaltet, dass die Schleife nicht 
wegoptimiert wird.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das es sich um einen AVR handelt konnte man ja gerade noch so aus 
dem Code herauslesen. Aber welcher genau? Ds es kein Atmega8 ist kann 
man auch rauslesen.....

Autor: Uwe Nagel (ulegan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt blinkende LED's, hast Du vielleicht so eine erwischt?
Leuchtet sie direkt an 5V, mit Vorwiderstand, dauernd?
Wie schnell blinkt sie?
Dein Programm ist eigentlich ok, wie sind die Fuses gesetzt?
Welchen Takt verwendest Du und welche Versorgungsspannung?

Autor: Mat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, sorry.

Es ist ein AT90USB647 Controller.

Led ist nicht selbstblinkend und hat auch mal an diesem Port 
funktioniert bzw. funktioniert per zufall immer noch, also wenn ich die 
Betriebsspannung wegnehmen und wieder hänge dann blinkt die LED nicht 
mehr auch nach einem RESET nicht, lade ich das Programm allerdings neu 
runter blinkt sie wieder.

EDIT : habs grad nochmal runtergeladen und jetzt blinkt sie nicht mehr.

Kann das mit USB bzw. Bootloader zusammenhängen, hab vorher per zufall 
den Bootloader gelöscht und dann hat sie beim programmieren nicht 
geblinkt.

Bootloader (64X-usb-boot-1-0-0 von Atmel) wieder raufgeladen und mit 
Programmiert und blinkt wieder.

Programmiers einerseits per SPI und andererseits per Bootloader, blinkt 
aber beidesmal.

CLK : 16MHz ohne VT

Direkt angeschlossen Leuchtet die LED normal.

Sie blinkt mit mehreren Hz aber nocht gut sichtbar (<10Hz).

Fuses eigentl. nur : HWBE und SPIE

danke für die Hilfe

Autor: Mat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So bin mir nun relativ sicher, dass es am Bootloader liegt, da wenn der 
Bootloader gelöscht ist ( Erase Device - Vcc weg - Vcc wieder ran ) 
funktioniert auch das größere Programm ohne Probleme.

Kann es sein dass der BL irgendwie auf die Ports zugreift oder sonst 
irgendwas überschreibt, dass die LED blinkt ?

danke

PS.: sorry für den etwas nicht Deutsch Post vorhin =)

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.