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.