mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik fehlerhafter Übergabewert einer Funktion bei C167CR


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Verwende: Phycore MM167CR, uVision3 und FlashTools
ich hab folgendes Problem:
Ich habe ein Programm, das mit verschiednen SPI Bausteinen
kommunizieren soll. Dazu ist beim C167 die SSC Schnittstelle
konfiguriert. Aufgerufen werden die Sendebefehle über eine Interrupt
Routine die durch einen Timer alle 500ms auslöst.
Mit:
void TASK_500ms(void)   //executes every 500ms
{SPI_Transmit_DEV1(0x0DF2);}

wird eine Funktion aufgerufen die einen Wert über SPI verschicken
soll.
Und zwar so:

void SPI_Transmit_DEV1(uword txword)
{
txbuffer=txword;
if (SSC_ubTxBufFree())
{
SSC_vSendData(txbuffer);  //send
}
Wenn ich es mit dem Monitor von Keil uVision3 reinlade gehts ohne
Fehler.
Der Aufruf, das Senden usw. funktioniert, nur kommen nach dem FLASHEN
mit Phytecs FlashTools als Daten (also in txbuffer) nur 1en auf dem
SPI-Bus raus. Wenn ich die Daten direkt in die Funktion
(SPI_Transmit_DEV1) schreibe gehts auch.

Der Aufruf der Funktion geht also, der clk ist ja da. Nur die Daten
werden wohl beim Funktionsaufruf nicht richtig übergeben.
Hab schon die BUSCONs und ADDRSELs überprüft, auch den ext Speicher des
Targets eingestellt. Woran kann es denn liegen dass die Funktion
anscheinend richtig geht nur die Übergabedaten nicht ankommen?

Gruß
christian

Autor: Max Murks (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke beim Simulieren uVision wird nicht auf RAM und ROM (FLASH)
unterschieden. Im Target sehr wohl. Bist Du sicher, dass Dein txbuffer
im RAM liegt und nicht als const im FLASH?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja richtig, wenn man den Debugger benützt lädt sich das Monitor Programm
mitsammt dem Programm nur in den RAM, von da aus gehts ja.. Nur ist das
ja nicht beständig.
Ich hab jetzt rausgefunden, dass laut .m66 file die betreffenen
Variablen in NDATA0 stehen, der betreffende Speicherbereich ist auch
richtig. Vielleicht ist das Buscon Register doch nicht richtig. Hat
jemand vielleicht ein Startup File für ein MM167 von Phytec das ich mir
mal ansehen könnte.

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.