www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP TMS320VC55 Interrupt Problem


Autor: Franz Schwarz (franz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe ein Board mit dem TMS320VC5509A. Ich will jetzt das auf einen 
externen Interrupt eine Reaktion erfolgt. Zu Testzwecken ziehe ich den 
Interrupteingang INT3 auf Masse der sonst über nen PULL UP Wiederstand 
auf Versorgungsspannung liegt.

Es passiert gar nix.


Ausschnitte aus meinem Code:

#include <stdio.h>
#include <csl.h>
#include <csl_mcbsp.h>
#include <csl_irq.h>

static void mcbsp1_init(void);
interrupt void myIsr(void);

void main() {

CSL_init();

IRQ_plug(IRQ_EVT_INT2, &myIsr);
IRQ_enable(IRQ_EVT_INT2);
IRQ_globalEnable();

...
}


interrupt void myIsr(void) {
mcbsp1_init();
}


Im spru433j.pdf von TI steht u.a im Bsp. noch die Zeilen:

extern Uint32 myVec;

....

IRQ_setVecs((Uint32)(&myvec) << 1));

mit denen ich nix anzufangen weiß.

Muss ich da noch diese Asambler "einbinden" die manchmal in den 
Beispielen dabei ist (vectors.s55 o.ä.)?

Wenn ja wie mache ich das und wie muss diese Datei aussehen?

Ich hab überhaupt keinen Plan wie das hinhauen soll. Für Hilfe wäre ich 
sehr Dankbar.

mfg
Franz


Autor: Franz Schwarz (franz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja hab wohl meinen Fehler gefunden...

man muß sich im DSP/BIOS config GUI sein Zeug noch zusammenklicken und 
das ganze muss auch noch passen ;-) naja klicki bunti halt...

betet das Ihr nie so ein Teil programmieren müsst

Franz

Autor: Lukasz Bulak (lukaszb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

am Anfang, aus deinem Code:
es ist merkwuerdig, dass mcbsp1_init
im interrupt steht - wie soll der mcbsp
die Funktion einfach starten?
Es soll am Anfang im main() stehen.ich habe ganz aenliches Problem.
Es ist zwar anderes Board/DSP - TMS320C54CST.
Wollte einfach den McBSP einschalten
und etwas hin und her schicken.

Nachdem ich die alle IRQ_ Funktionen eingefuegt,
dann die myIsr geschreieben, geht es so:
1. Wenn ich in zyklisch etwas in den port schreibe
oder lese, geht die ISR ok.
2. Wenn die Loop aber leer ist - kommen keine Interrupts.

Hast Du so etwas aenliches?
Geht es richtig oder habe ich Fehler gemacht?
Es soll ohne DSP/BIOS funktionieren.


void main(void) {
  CSL_init();
  MCBSP_init();
  IRQ_plug(   IRQ_EVT_XINT1, &intMCBSP1_write );
  IRQ_clear(  IRQ_EVT_XINT1 );
  IRQ_enable( IRQ_EVT_XINT1 );
  IRQ_plug(   IRQ_EVT_RINT1, &intMCBSP1_read );
  IRQ_clear(  IRQ_EVT_RINT1 );
  IRQ_enable( IRQ_EVT_RINT1 );
  IRQ_globalEnable();
  MCBSP_write16( McbspDataHandle, 0 );  // start to generate first int
  MCBSP_read16( McbspDataHandle );

for ( ; ;  ) {
//   MCBSP_write16( McbspDataHandle, 0 );
//   MCBSP_read16( McbspDataHandle );
   }

}

interrupt void intMCBSP1_write() {
  MCBSP_write16( McbspDataHandle, sample );
}

interrupt void intMCBSP1_read(void) {
  sample = MCBSP_read16( McbspDataHandle );
}

--
Lukasz

Autor: Daniel Nitsch (belzebub)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jungs,

sag mal wo gebt ihr eigentlich an wo die einsprungmarke der 
Interruptvektortabelle ist. Ich denke wenn ihr das einfügt ( vor der 
Initallisierung der CSL !!!, steht in irgenteiner Doc datei) sollte es 
gehen.

Gruss

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.