www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fuses mega 128 HILFE!


Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle zusammen.

Habe folgendes Problem. Ich weiß das es viele schon nevt aber ich hoffe 
ihr könnt mir trotdem helfen.

Ich habe die füses an meinem Display 300 geändert komme jetzt nicht mehr 
dran...

meine frage ist an welchen pin muss ich den den externen takt geber 
anschliessen? damit ich die fuses wieder zurück setzen kann?


bedanke mich im vorraus

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch etwas

Ich habe einen Quarz von meinem mega8 8Mhz. ist es ausreichend?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe an XTAL1 den 14 MHz quarz hängen das ist also nicht richtig. er 
geht ja trotzdem nicht.

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und was ist an XTAL2?

Autor: Compy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Quartz gehört meines Wissens nach an XTAL1 UND XTAL2...?
Jeweils mit 22pf oder so gegen Masse geblockt. --> Datenblatt <--

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
an XTAL2 ist das andere beinhen vom quarz.

Es hat so auch funktioniert, befor ich mit de fuses rum gespielt habe

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider weiß ich nicht welche einstellungen ich vorgenommen habe aber 
welche möglichkeiten gibt es den noch wo ich meinen 8 Mhz quarz 
anschliessen kann?

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also vorher war bei mir CKSEL3-1 deaktiviert(AVR studio kein hacken), 
Dann habe ich Sie aktiviert und von SUT 0 auf SUT1 umgestellt und jetzt 
kann ich nicht mehr darauf zugreifen.

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann das der fehler sein?

"Für einen externen Quarz ist die Einstellung External Crystal/Ceramic 
Resonator notwendig, also eine Einstellung von 1111. Unglücklicherweise 
ist bei den vielen Fusebit Einstellprogrammen nicht auf den ersten Blick 
offensichtlich, ob ein gesetztes Häkchen nun eine 1 oder eine 0 
bedeutet. Anstatt auf 1111 werden die Fusebits auf 0000 gesetzt und 
damit ein External Clock eingestellt. Ein External Clock ist aber ein 
Quarzoszillator. Ein Quarz wird an so einer Einstellung nicht ins 
Schwingen kommen. "

Also dass mein mega8 quarz nicht ins schwingen kommt? und ich an XTAL 1 
einen anderen taktgeber anschliessen muss?

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann das der fehler sein?
Ja

Leg eine externe Taktquelle an XTAL1 an und stell dann die Fuses auf 
Ext. Crystal

Siehe auch: 
http://www.klaus-leidinger.de/mp/Mikrocontroller/m...

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int main()
{
  DDRD = 0xFF;
  while(1)
  {

    PORTD |= (1 << MEINBIT);    /* setzt Bit 2 an PortA auf 1 */
    for(i=0;i<=60000;i++);
    PORTD &= ~(1 << MEINBIT);   /* loescht Bit 2 an PortA */
  }
  return(0);
}

Dieses Programm habe ich geschrieben um meinen mega 8 als externen takt 
geber zu nutzen aber er funktioniert nicht kann mir wer sagen warum?Es 
Blinkt noch nicht einmal die angeschlossene Diode.

Autor: jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Auge oder die Diode ist nicht schnell genug.

Wie lange dauert der Zustand 1 an MEINBIT? Okay, 60000 x i++

Wie lange dauer der Zustand 0 an MeinBit? ....

Gruß

Jens

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jens wrote:
> Wie lange dauert der Zustand 1 an MEINBIT? Okay, 60000 x i++
Aber nur bei ausgeschalteter Optimierung oder wenn i volatile ist...

Ansonsten hast Du völlig recht.

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht leider immer noch nicht...:-((

Autor: jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, auch auf die Gefahr jetzt OffTopic zu werden.  Warum sollte die 
Optimierung eine Rolle spielen. i wird inkrementiert, da kann der Code 
doch nicht einfach wegoptimiert werden, es ändert sich ja was, oder 
doch?

Jens

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe jetzt folgendes


#include <avr/io.h>

#define MEINBIT 2
volatile int i;
int main()
{
  DDRD = 0xFF;
  while(1)
  {

      PORTD |= (1 << MEINBIT);    /* setzt Bit 2 an PortA auf 1 */
      for(i=0;i<=60000;i++);
      PORTD &= ~(1 << MEINBIT);   /* loescht Bit 2 an PortA */
      for(i=0;i<=60000;i++);
  }
  return(0);
}

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und es geht nicht

Autor: jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann über die Fuses noch RC-Oszialtor einstellen. Kenne einen der 
hat das vor kurzem versehentlich geschaft. Dann musst du eine RC 
Kombination anschließen. Für die Werte und Beschaltung müsstest du halt 
ins Datenblatt schauen.

Gruß

Jens

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich komme an den microkontroller nicht mehr dran ich muss einen TAKT 
geber anschliessen. und mein mega 8 den ich da habe will nicht 
misssbraucht werden. er macht kein takt.

aber um an die Fuses vom mega 128 zu kommen brauche ich halt einen takt 
geber.

Hat jemand son blink.c oder so? weil wie gesagt mein funkzt nicht warum 
auch immer

#include <avr/io.h>

#define MEINBIT 8
volatile int i;
int main()
{
  DDRD = 0xFF;
  while(1)
  {

    PORTD |= (1 << MEINBIT);    /* setzt Bit 2 an PortA auf 1 */
    for(i=0;i<=60000;i++);
    PORTD &= ~(1 << MEINBIT);   /* loescht Bit 2 an PortA */
    for(i=0;i<=60000;i++);
  }
  return(0);
}

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jens wrote:
> Hm, auch auf die Gefahr jetzt OffTopic zu werden.  Warum sollte die
> Optimierung eine Rolle spielen. i wird inkrementiert, da kann der Code
> doch nicht einfach wegoptimiert werden, es ändert sich ja was, oder
> doch?
Es ändert sich nur etwas, das im Programm an keiner anderen Stelle 
verwendet wird. Also betrachtet der Optimizer das Inkrementieren von i 
schon als unsinnigen Vorgang und schmeißt ihn raus.

@OP:
Verwende bitte die fertigen Funktionen aus der util/delay.h. Die sind 
für sowas da.

Für nen Takt nimmste aber besser gleich nen Timer.

Und selbst wenn das mit der selbstgebauten Schleife funktionier und ein 
Durchlauf 4-5 Takte braucht, dann hast Du immer noch ein paar zig Hz 
(bei 14 MHz), und das gibt kein Blinken, sondern höchstens ein Flimmern.

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe jetzt folgendes Programm geschrieben und es funktioniert.


#include <avr/io.h>
#define F_CPU 1000000UL
#include <util/delay.h>


#define MEINBIT3 3
#define MEINBIT2 2
volatile int i;
int main()
{
  DDRD = 0xFF;
  while(1)
  {
    PORTD |= (1 << MEINBIT3);    /* setzt Bit 2 an PortA auf 1 */
    PORTD &= ~(1 << MEINBIT3);   /* loescht Bit 2 an PortA */
  }
  return(0);
}


habe meinen Mega128 erfolgreich retten können

Autor: Der Grosse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke an alle die mir geholfen haben

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.