Hallo, ich hab ein funktionierendes Programm das mit printf() Texte über die UART schicken kann, und ich hab ein funktionierendes Programm das mit lcd_puts() Texte auf ein 4x20 Display schreiben kann. Ich will nun beide vereinen um beide Schnittstellen gleichzeitig nutzen zu können. Sie liegen auch auf verschieden PINs. UART liegt auf PortB 5 und 6. Lcd liegt auf PortB 0-3 und rs auf PortA2 und En auf PortA3. Jedoch stören sich (vermutlich) die beiden folgenden initialisierungen: #define INIT_PORTS {TRISA = 0x00; TRISB = 0x00; TRISC = 0xBF; TRISD = 0xFF; TRISE = 0x07;} //---------------------------------------------------------------------- ------------ void RegInit(void) //---------------------------------------------------------------------- ------------ { //Pull-up port B RBPU = 0; INIT_PORTS; BRGH=1; // high baud rate SPBRG=22; //set the baud rate 22-9600Bd,11-19200(3.58MHz) SYNC=0; // asynchronous SPEN=1; // enable serial port pins CREN=1; // enable reception SREN=0; // no effect TXIE=0; // disable tx interrupts RCIE=0; // disable rx interrupts TX9=0; // 0-8 or 1-9bit transmission RX9=0; // 0-8 or 1-9bit reception TXEN=1; // enable the transmitter } void lcd_init(void) { LCD_RS = 0; // write control bytes DelayMs(15); // power on delay PORTB = 0x3; // attention! LCD_STROBE; DelayMs(5); LCD_STROBE; DelayUs(50); LCD_STROBE; DelayMs(5); PORTB = 0x2; // set 4 bit mode LCD_STROBE; DelayUs(40); lcd_write(0x28); // 4 bit mode, 1/16 duty, 5x8 font lcd_write(0x0F); // display on, blink curson on lcd_write(0x04); // entry mode lcd_write(0x01); // Display Löschen } Bin für jede Hilfe Dankbar! MFG Holger
Damit du Daten empfangen kannst muss RX als Eingang definiert sein. Laut Datenblatt sollen sogar beide Pins also auch TX in TRISB gesetzt sein. MfG Steffen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.