- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 2 von 2

Thema: 18f1320 USART sendet aber empfängt nicht

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.06.2007
    Beiträge
    8

    18f1320 USART sendet aber empfängt nicht

    Anzeige

    Praxistest und DIY Projekte
    Hi leute,

    Ich beschäftige mich seit kurzem mit pics und versuche gerade die kommunikation zwischen rechner und pic zum laufen zu kriegen. zum testen hab ich mir ne kleine schaltung auf ner lochrasterplatiene aufgebaut mit nem max232 und nem 18f1320. wenn ich mit meinem pic daten sende dann kommen die beim rechner auch an aber wenn ich mit meinem rechner daten sende dann kommen die bei meinem pic ned an. direkt an meinem RXD pin von meinem pic hab ich ne led zur kontrolle und die is auch fleissig am blinken wenn ich daten empfangen sollte. selbst wenn ich von meinem PIC TXD und RXD direkt mit einem draht verbinde empfange ich nix . Deswegen denke ich das es eigendlich nur an meiner software liegen kann... oder? ich programmiere in c und verwende C18 meinen PIC takte ich mit 10 MHz. Ich zerbrech mir schon seit tagen den kopf was ist an meinem code falsch? RXD und TXD sind gebrückt aber trotzdem passiert nix.
    Code:
    /** I N C L U D E S **********************************************************/
    #include <p18cxxx.h>
    #include "delays.h"                       	// für die Warteschleife
    #include "usart.h"							// für RS232 
    
    
    /** Configuration ********************************************************/
    #pragma config OSC = HS   //CPU= 10MHz x 4 = 40MHz
    #pragma config PWRT = OFF  //Power UP Timer
    #pragma config BOR = OFF  //Brown Out Reset
    #pragma config WDT = OFF  //Watchdog Timer
    #pragma config LVP = OFF  //Low Voltage ICSP
     
    
    /** D E C L A R A T I O N S **************************************************/
    
    #pragma udata gpr0
    unsigned char out;
    unsigned char in;
    
    
    /** M A I N **************************************************/
    #pragma code
    
    void main(void)
    {
    	LATA = 0x00;			//0 in Register A schreiben
    	LATB = 0x00;			//0 in Register B schreiben
    	TRISA = 0b11111100;		
    	TRISB = 0b00010010;		
    	
    	OpenUSART(	USART_TX_INT_OFF &		//USART Initialisieren
    				USART_RX_INT_OFF &
    				USART_ASYNCH_MODE &
    				USART_EIGHT_BIT &
    				USART_CONT_RX &
    				USART_BRGH_HIGH,64 );	//9600 Baud
    
    
    	while(1)
    	{
    		
    		out = 52;
    		putcUSART(out);
    		Delay100TCYx(50);
    
    		if DataRdyUSART()
    		{
    			in = getcUSART();
    			if (in == 52)
    				LATAbits.LATA0 = !LATAbits.LATA0;
    		}
    		Delay10KTCYx(500);
    	}
    	CloseUSART();
    }

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    19.06.2007
    Beiträge
    8
    Ich scheine auch irgendwie probleme damit zu haben ein portregister auszulesen... wenn ich z.B. RB4 im register TRISB bit 4 auf 1 setzte um RB4 als eingang zu definieren und an RB4 spannung anlege dann tut sich nix

    das ist meine testroutiene an meinem PIC sin RB1 und RB4 gebrückt und eigendlich müsste die LED an RA0 blinken. aber da passiert nix.
    Code:
    	LATA = 0x00;			//0 in Register A schreiben
    	LATB = 0x00;			//0 in Register B schreiben
    	TRISA = 0b11111100;		
    	TRISB = 0b11111101;		
    	
    	while(1)
    	{
    		Delay10KTCYx(500);
    		LATBbits.LATB1 = !LATBbits.LATB1;
    		LATAbits.LATA1 = LATBbits.LATB4;
    	}
    eigendlich müsste der pic doch ja ins register LATB die zustände der eingänge eintragen oder muss ich die irgendwie anders abfragen? kennt nicht jemand n tutorial fur C18 ich hab bei google nämlich nix gefunden.
    Ich wäre euch für hilfe sehr dankbar weil mein projekt nurnoch an der kommunikation zwischen PIC --> PC hängt.

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress