mikrocontroller.net

Forum: Compiler & IDEs SPI Sende-Funktion wird nicht beendet!


Autor: puzi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ich habe ein Programm geschrieben um mit einem ATmega64L über SPI einen 
7-Segment treiber anzusteuern. Ich bennutze das AVR-Studio mit dem 
AVR-GCC Compiler.

Zum senden der daten erstellte ich eine Funktion.
Im AVR Simulator funktioniert die Funktion und das ganze programm 
einwandfrei.
Doch wenn ich es auf den uP lade, bleibt das Programm ind der ersten 
aufgerufenen Funktion stecken, d.h. sie wird nicht beendet und das 
Programm spring nicht zurück.

Ich habe keine ahnung warum es nicht funktioniert!

Vieleicht kann mir jo jeman helfen oder hatte schon das selbe problem!

Gruss puzi

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wo schaltet du das globale I Flag ? (sei();) ???

Gruß,
Dirk

Autor: puzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze ja gar keine Interrupts!
oder muss ich das globale I Flag auch für Funktionen setzen?

gruss beat

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
auch wenn es relativ unerheblich sein müsste:
Deine While-(Warte-)Schleifen sollten mit einem ; abgeschlossen werden.

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das scheint mir wieder der allseitsbekannte "#SS"-Fehler zu sein:
Du musst den Pin, der im Datenblatt dafür vorgesehen ist, als Output 
konfigurieren, auch wenn Du den gar nicht benutzt.

Autor: puzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, das werd ich gleich mal versuchen!

vielen dank für die informationen.

gruss puzi

Autor: puzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich habe die spi pins mal als ausgänge definiert.
das hat aber nichts gebracht!
am ende der 1. funktion steht eine ausgabeanweisung für port c, diese 
führt er noch aus, die ausgabeanweisung direkt nach der funktion im 
hauptprogramm allerdings nicht mehr. darum denke ich hatte das mit der 
fehlenden bestimmung der datenrichtung vorher diesen fehler nicht 
herbeigerufen....

trotzdem dankeschön...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> die ausgabeanweisung direkt nach der funktion im
> hauptprogramm allerdings nicht mehr.

...

> mit einem ATmega64L

plong!

Deaktiviere die M103C-Fuse.

Autor: puzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
erstmal sorry für die späte antwort.

ich habe die m103c-fuse mal deaktiviert!

dabai herausgekommen:

das programm springt immer noch nicht aus der funktion zurück.
dann habe ich sie wieder aktiviert und festgestellt, dass das programm 
jetzt gar nicht mehr in die funktion hineinspringt!

und ausserdem habe ich heraus gefunden, dass ich dieses problem mit den 
funktionen generell habe und nicht bei dieser!
das erklärt einige gescheiterte programmierversuche! :-(

gruss puzi

Autor: Puzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das ganze einfach mal auf einem anderen PC ausprobiert!
Und da funktioniert alles problemlos!

Daher denke ich war das ein Problem meines Computers!
Vieleicht lief der compiler nicht sauber oder es gad probleme beim 
linken, oder so etwas könnte ich mir am ehensten vorstellen!

danke trotzdehm für eure hilfeversuche

gruss puzi

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.