ATMega64, Controller läuft nicht an

Gast #167863
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
Gast #167865
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;
Angehängte Dateien:
Gast #167869
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren