Forum: Mikrocontroller und Digitale Elektronik PORTA blink ungewollt


von Mat (Gast)


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 :
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <avr/io.h>
4
#include <inttypes.h>
5
#include <avr/interrupt.h>
6
7
int main(void)
8
{
9
  DDRA |= (1<<PA3);
10
  PORTA = 0x00;
11
  
12
  while(1)
13
  {
14
15
  }
16
  return 0;
17
}

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

danke im vorraus
Mat

von Mat (Gast)


Lesenswert?

EDIT :

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

von Ulrich (Gast)


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.....

von Uwe N. (ulegan)


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?

von Mat (Gast)


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

von Mat (Gast)


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 =)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.