www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik US0 IRQ auf AT91SAM7256 einschalten


Autor: USART (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich habe hier seit 2 Tagen ein Problemchen, das mich mittlerweile 
verzweifeln lässt:
Ich möchte an die RX-Leitung des Uart 0 am ARM ein Gerät hängen, das mir 
in unregelmäßigen Abständen Daten an den ARM schickt.
Das Lesen von RX soll über einen UART-Interrupt getriggert werden. Ich 
initialisiere diesen wie folgt:
//Config IOs
AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, AT91C_PA05_RXD0 );

// enable clock of USART
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1<<AT91C_ID_US1 ) ;

uart.rdPos = 0;
/* Disable the DMA */
AT91F_PDC_DisableRx( AT91C_BASE_PDC_US0 ); //Disable the DMA

/* Reset transmitter and receiver */
AT91C_BASE_US0->US_CR =  AT91C_US_RSTRX; //rx and tx are then disabled
  
// config USART
AT91F_US_Configure( AT91C_BASE_US0, MCK, mode, baud_rate, 0 );
   
// enable rx 
AT91C_BASE_US1->US_CR = AT91C_US_RXEN;
   
AT91F_PDC_DisableRx( AT91C_BASE_PDC_US1 ); //Disable the DMA for receive
   
/* Set DMA Rx buffer*/
AT91C_BASE_US0->US_RPR = (uint)uart.rxBuf;
AT91C_BASE_US0->US_RCR = sizeof(uart.rxBuf);
AT91C_BASE_US0->US_RNPR = (uint)uart.rxBuf;
AT91C_BASE_US0->US_RNCR = 0;
   
AT91F_PDC_EnableRx( AT91C_BASE_PDC_US0 ); //Enable the DMA for receive

AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_US0, IRQ_PRIORITY_PIO, AT91C_AIC_SRCTYPE_INT_LOW_LEVEL, isrUART );

//Enable IRQ on US0
AT91C_BASE_US0->US_IER = AT91C_US_RXRDY;
AT91F_AIC_EnableIt( AT91C_BASE_AIC, AT91C_ID_US0 );

Leider funktioniert die Sache nicht so recht --> Unknown Instruction, 
oder watchdog.
Kann mir jemand sagen, wo der Fehler zu suchen ist?

Autor: USART (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1<<AT91C_ID_US1 ) ;
soll natürlich lauten:
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1<<AT91C_ID_US0 ) ;

Da hab ich mich wohl vertippt...

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.