Recive Data USART / UART PIC18

OP #2390517
Lesenswert?
• ▲
▼
Hallo,
Daten vom PIC zum PC zu schickenn, klappt super ;) Doch welche vom PC zu 
empfangen, und diese im PIC auszuwerten, bekomme ich einfach nicht hin. 
Ich versuchs mit der Lib. usart.h von microchip. Doch bekomme ich einen 
Error.

Wenn ich die sw_uart.h rausnehme, und die UART Funktion unten 
ausklammere, dann bekomme ich den Fehler weg. Ich würde es am liebsen 
nur mit der usart.h Include machen !

/*********************************************************************** 
**/
/**         PIC18F258 mit MAX233 Testplatine          **/
/*********************************************************************** 
**/
/**        Description:   Recive Data from RS232            **/
/**                                       **/
/**        Codeversion:   1.0                    **/
/**        Datum:       21.10.2011                **/
/**        Autor:       Tim Erler                **/
/**                                    **/
/*********************************************************************** 
**/

/***INCLUDE-DATEIEN***************************************************** 
**/
  #include <p18f258.h>    // Für den PIC
  #include <delays.h>      // Für Pausen und Zeiten
  #include <usart.h>      // Für die RS232 USART Übertragung
  #include >sw_uart.h>
//  #include <stdio.h>      // Zum Rechnen
/*********************************************************************** 
**/

/***PIC-CONFIGURATIONEN************************************************* 
**/
  #pragma config OSC =  HS   // 8MHz Oscillator mit Lastkondensatoren
  #pragma config PWRT = ON    // Power Up Timer       = on
  #pragma config BOR = OFF     // Brown out Reset     = off
  #pragma config WDT = OFF     // Watch Dogtimer       = off
  #pragma config LVP = OFF     // Low Voltage Programming = off
  #pragma 300006h = 0b10000101;// Konfiguration für ICSP
  #pragma code
/*********************************************************************** 
**/

/***Speicherbedarf****************************************************** 
**/
char data;
/*********************************************************************** 
**/

/**DIE 
Unterprogramme*****************************************************/

/*********************************************************************** 
**/

/**DIE 
MAIN-SCHLEIFE******************************************************/

void main(void)

{
  OpenUSART(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE &
  USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW, 12);         // 
USART Modul wird hier eingestellt und initialisiert. 9600 Baut

        TRISC = 0 ;                     // setzt den P
        PORTC = 0 ;                     // clear PORT


  while(1)
  {
    data = ReadUART(); //read a byte
    while(!DataRdyUART());
    WriteUART( data ); //bounce it back
  }
}
/*********************************************************************** 
**/


Meldung:

Debug build of project `C:\Dokumente und 
Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\RS232_18F258\RS232_PIC18F258.mcp' started.
Language tool versions: mpasmwin.exe v5.37, mplink.exe v4.37, mcc18.exe 
v3.36, mplib.exe v4.37
Preprocessor symbol `__DEBUG' is defined.
Fri Oct 21 18:49:24 2011
----------------------------------------------------------------------
Make: The target "C:\Dokumente und Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\RS232_18F258\main.o" is out of date.
Executing: "C:\MCC18\bin\mcc18.exe" -p=18F258 "main.c" -fo="main.o" 
-D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
C:\Dokumente und Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\RS232_18F258\main.c:16:Error [1026] malformed #include 
directive
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `C:\Dokumente und 
Einstellungen\Tim-Programming\Eigene 
Dateien\MPLAB\C\RS232_18F258\RS232_PIC18F258.mcp' failed.
Language tool versions: mpasmwin.exe v5.37, mplink.exe v4.37, mcc18.exe 
v3.36, mplib.exe v4.37
Preprocessor symbol `__DEBUG' is defined.
Fri Oct 21 18:49:24 2011
----------------------------------------------------------------------

Lg Tim
Gast #2390544
Lesenswert?
• ▲
▼
Hallo Tim,
hänge doch mal bitte den ganzen Code als File in den Post, sonst kann 
man damit:

Dateien\MPLAB\C\RS232_18F258\main.c:16:Error [1026] malformed #include
directive

nicht's Nachvollziehen.

PS: Baud (nicht baut) nicht schlimm, aber unschön
OP #2390557
Lesenswert?
• ▲
▼
Jetzt, wenn ich die Spannung einschalte, passiert nix. Ich schicke einen 
Buchstaben. Dann kommt der zurück, und ich werde mit "Leerzeichen 
vollgespammt" bis ich die Spannung abstelle...

Woran kann das liegen ? Der müsste doch erst wieder warten, ob ein 
Zeichen da ist, oder ?

LG Tim
Gast #2390577
Lesenswert?
• ▲
▼
Hi Tim,

Da ich wenig mit den 18er Pics mache kann ich nur mutmaßen und dir raten 
die Doku zurate zu ziehen.

So wie ich das sehe ist die Funktion ReadUART() blockieren, d.h. die 
Funktion kehrt erst zurück wenn sie wirkliche in Byte liefern kann. 
Somit kannst du ganz einfach folgenden Code schreiben.
1
while(1)
2
{
3
    data = ReadUART();
4
    WriteUART( data );
5
}



Doku:
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_C18_Libraries_51297f.pdf

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.