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


von Christian (Gast)


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

von Max Murks (Gast)


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?

von Christian (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.