mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MEGA1284, Port schaltet extrem langsam


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe in meinener Schaltung einen MEGA644P gegen einen MEGA1284P 
getauscht. Nun wollte ich mir anschauen, wie schnell ein gewisser 
Codeabschnit durchlaufen wird und dazu einen PORT-Pin togglen. Jetzt 
habe ich festgestellt, das nach zu bzw. abschalten des Pins dieser 
mehrere Sekunden braucht bis er den jeweils anderen logischen Zustand 
angenommen hat. Der Pin ist unbeschalten. Ich bin jetzt einigermaßen 
verwundert. Habe ich da was übersehen, was beim 1284 anders ist als beim 
644? Ach ja: AVR Studio mit GCC

DDRA |= (1<<DDA7) | (1<<DDA6) |(1<<DDA5) |(1<<DDA4) | (1<<DDA3) | (1<<DDA2) | (1<<DDA1);

while(1)  PORTA ^= (1<<4);


Hab jetzt erst mal nur versucht zu togglen, ohne Programm Code 
drumherum, gleiches Problem.

Grüße, ALex

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:
> Hab jetzt erst mal nur versucht zu togglen, ohne Programm Code
> drumherum, gleiches Problem.

kompletter Code bitte.
:-)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

int main (void) {
  
  DDRA |= (1<<DDA7) | (1<<DDA6) |(1<<DDA5) |(1<<DDA4) | (1<<DDA3) | (1<<DDA2) | (1<<DDA1);
  DDRB |= (1<<ADIS_TCS)|(1<<ADIS_CS)|(1<<SELF_TEST)|(1<<RTC_PWR)|(1<<RTC_CS);
  DDRC |= (1<<RADIO_PWR) | (1<<BAT_SENS_PWR) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);
  DDRD |= (1<<LED_GREEN) | (1<<LED_RED) |(1<<DDD5) | (1<<DDD4);
  PORTB |= (1<<ADIS_TCS)|(1<<ADIS_CS);  
  
  while(1)  PORTA ^= (1<<4);
}


mit diesem Code teste ich das gerade

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:
> ich habe in meinener Schaltung einen MEGA644P gegen einen MEGA1284P

Im Makefile bzw in den Compilereinstellungen geändert?
Wie stellst du die Geschwindigkeit des Wechselns an PA4 fest? Oszi?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ERgänzung,

ich habe die Hardware 2x da, und bei beiden dasselbe Problem :(

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie willst du denn mit der Whileschleife mehrere Sekunden messen? Das 
Toggeln sollte mit halbem Prozessortakt, oder auch weniger, je nach dem 
was C draus macht laufen.

Vermutung: Digitaloszi und falsche Zeitbasis, sodass du  fOszi-fToggle 
dadrauf siehst (also unterabtastung betreibst)?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, ich teste das mit dem Oszi,

ich habe nix geändert, außer im AVR Studio als Device den anderen 
Controller eingestellt. Make und so weiter läuft automisch über AVR 
Studio.

Alex

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hauke: vorhin habe ich das Port manuel per tasten zu und abgeschaltet 
und man konnte schön sehen, wie die Spannung hoch und runter "gefloatet" 
ist.

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hört sich eher nach "nicht angeschlossener Masse" oder "AC-Kopplung" an.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OHne jetzt ins Datenblatt gesehen zu haben.
An Port A liegt nicht zufällig der ADC und du hast AVcc nicht 
angeschlossen?

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuses richtig eingestellt?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem gelöst, war wirklich 'ne Oszi-Einstellung. Mann sollte die 
Mittelwertbildung ausschalten bei sowas. Das ist mir jetzt peinlich. 
Sorry!
Danke für die vergebliche Mühe.

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.