mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 und LCD gleichzeitig mit PIC


Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.