-
        

Ergebnis 1 bis 3 von 3

Thema: UART Interrupt

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.05.2005
    Beiträge
    9

    UART Interrupt

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Guten morgen,

    ich habe ein Problem beim Programmieren einer UART Kommunikation. Ich möchte, das beim Empfang einer Zeichenfolge ein Interrupt ausgelöst wird. In der Interrupt Routine soll dann in eine Funktion zur Befehlsprüfung gesprungen werden. Das Problem ist nur, das nie ein Interrupt ausgelöst wird.
    Hier sind die entprechenden Teile aus meinem Programm:

    ISR:
    Code:
    void __attribute__((__interrupt__, auto_psv)) _U1RXInterrupt(void)
    {
    	
    	UART1_empfang();
    	IFS0bits.U1RXIF = 0;      
    }
    UART Init:
    Code:
    void UART1Init(int BAUDRATEREG1)
    {
    	  U1BRG = BAUDRATEREG1; 
          U1MODE = 0x8000; 
          U1STA = 0x8400;
    	  IFS0bits.U1RXIF = 0;
    }
    UART Empfang:
    Code:
    void UART1_empfang(void)
    {    
    	int i;
      	char c;
      	char* s; 
    	
     	s=befehl;
      	i=0;
    
    
      	do
      	{
        	c=UART1GetChar(); 
    		if( c!='\r')
    		{   
        		*s=c;      
        		s++;
        		i++;
    		}
    	}
    	while( c!='&' );  
      	*s=0;
    
    	befehlspruefung();
    }
    und UART1GetChar:
    Code:
    char UART1GetChar()
    {
          char Temp;
    	  while(IFS0bits.U1RXIF == 0);
          Temp = U1RXREG;
          IFS0bits.U1RXIF = 0;
    	  return Temp;
    }
    Ich hoffe ihr könnt mir hilfreiche Tipps geben.

    mit freundlichen Grüßen

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.11.2007
    Beiträge
    100
    wurde denn das GIE (global interrupt enable) gesetzt?
    welcher PIC wird denn verwendet?

    hier gibt es ein beispiel zum 16F628:
    http://www.piclist.com/techref/micro...age/c/S628.htm

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    10.05.2005
    Beiträge
    9
    Hallo,

    Ich verwende einen PIC24FJ64GA002.
    Das Problem mit der UART habe ich gelöst. Ich habe einfach nur vergessen beim Initialisieren auch den Interrupt zu enablen. Jetzt funktionierts.

    mfg Florian

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •