Forum: Mikrocontroller und Digitale Elektronik ATMega64, Controller läuft nicht an


von Stefan_MK (Gast)


Lesenswert?

Hallo.

Ich habe meinen ATMega64 auf internen RC Oszillator und internen RESET
programmiert bei 8MHz. Zusätzlich habe ich ein kleines Programm
geschrieben mit dem ich ein Port PIN wackeln lassen will. Dies läuft
jedoch nicht. Und wenn ich die Spannung langsam herunterdrehe wird auch
der interne RESET nicht ausgelöst.
Ist der Controller vielleicht defekt, obwohl er sich programmieren
läßt? Oder habe ich irgend was vergessen?

Die Port Pins sind alle initiailsiert meist als Ausgänge die nach dem
RESET auf low liegen.

Hoffe auf Eure Hilfe.

Stefan

von Niels (Gast)


Lesenswert?

Hi,

Schaltplan und Code wär nicht schlecht.

Gruß Niels

von Stefan_MK (Gast)


Angehängte Dateien:

Lesenswert?

Hier kommt der Ausschnitt des Programms und der Schaltplan.
Programmausschnitt:

void Init(void)
{

        DDRA  = 0b00011111;             // PA0-PA4 als Ausgänge
        PORTA = 0b00000000;             // alle Ausgänge auf low


  DDRB  = 0b00000000;          // alle Pins im Tristate
  PORTB = 0b00000000;          //

  DDRC  = 0b00011111;        // Pin 0-4 als Ausgänge
  PORTC = 0b00000000;          // alle Ausgäng auf low

  DDRD  = 0b00000000;             // alle Pins als Eingänge
  PORTD = 0b11111111;          // alle Pull-Ups eingeschaltet

  DDRE  = 0b01100011;             // RXD, TXD, PE2 PE3 für
Spannungsüberwachung, PE5 und PE6 Takt und Signal
  PORTE = 0b00000011;             // AIN1 AIN0 im Tristate
  PORTE = 0b01100011;
  PORTE = 0b00000011;

        DDRF  = 0b00000000;             // alle Pins als Eingänge
        PORTF = 0b00000000;             // alle Pins tristate

}

///////////////////////////////////////////////////////////////////////
Main Funktion
///////////////////////////////////////////////////////////////////////

void main(void)
{
 Init();
 while(1)
 {
  PORTE=0b00100000;
  PORTE=0b00000000;
 }
 return;

von mmerten (Gast)


Lesenswert?

M103C Kompatibilitäts Mode auch deaktiviert (Fuse Bit) ?
Sonst gibt`s Probleme mit dem Stack.

von dave (Gast)


Lesenswert?

Kannste mal genau erklären, was deiner macht?

Woher siehste, dass der RESET nicht funktioniert..

dave

von Stefan_MK (Gast)


Lesenswert?

M103C ist programmiert. Der interne RESET funktioniert jetzt. Jedoch
wackelt mein Port Pin immer noch  nicht.

Stefan

von Olaf (Gast)


Lesenswert?

Du solltest mal ein delay nach setzen und löschen der port-bits
einfügen. Selbst bei 1MHz 'flakert' eine led so schnell das man es
nicht sieht. Ein DVM ist auch zu traäge um die änderung zu messen.

 while(1) {
  PORTE=0b00100000;
  delay();
  PORTE=0b00000000;
  delay();
 }

Olaf

von Stefan_MK (Gast)


Lesenswert?

Die LED muss zunächst nicht blinken. Ich schaue mir die Leitung mit
einem Oszi an, welches 8MHz auflösen kann. Aber ich versuche es
trotzdem einmal.
Danke

von Sebastian (Gast)


Lesenswert?

probier das mal mit nem anderen port (a-d) vielleicht ist das ja ein
compiler-problem... wegen memory mapped zugriff auf die oberen ports

von Stefan_MK (Gast)


Lesenswert?

Ich habe vorhin die Sache mit dem M103C Fus Bit falsch verstanden. Habe
es jetzt "deaktiviert" und mein Port Pin wackelt jetzt.

Ich dank Euch viel mals.

Stefan

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.