Jump to content

Search the Community

Showing results for tags 'driver'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • PIC Embedded Programming
    • BoostC and Chameleon compilers programming
    • BoostC porting source code
    • BoostC++ compiler programming
    • BoostBasic compiler programming
    • Assembler programming PIC
    • Novo RTOS Programming
    • Hardware PIC
    • Enhancement Requests
    • Bug Reports

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 1 result

  1. Hello kind Sourcebost developers last two days I'm getting mad about my LCD driver that I written, cause I can't really make it work and don't know where the problem can be (tried on real device and also in the paid plugin of yours). These are the main functions, the delays are just as in the example for the LCD plugin (asm nop's): void sendDataToLCD_delay (char data, char rs) { RS = rs; LCD_SetupDelay(); LCD = data >> 4; // sending left nibble E = 1; // perhaps a little delay will be needed before and after LCD_EnablePulseDelay(); E = 0; // pulse Enable H/L to send the data LCD_HoldupDelay(); LCD_CycleMakeupDelay(); RS = rs; LCD_SetupDelay(); LCD = data & 0x0F; // sending right nibble E = 1; // perhaps a little delay will be needed before and after LCD_EnablePulseDelay(); E = 0; // pulse Enable H/L to send the data LCD_HoldupDelay(); LCD_CycleMakeupDelay(); } // Clears the LCD display void clearLCD (void) { sendDataToLCD_delay(clear_lcd, 0); delay_ms(2); } // initializes the LCD display void initLCD (void) { char a; //delay_ms(20); // delay_ms(20) before delay_ms(16); // delay_ms(20) before sendDataToLCD_delay(system_set_reset_4bit, 0); delay_ms(5); sendDataToLCD_delay(system_set_reset_4bit, 0); delay_10us(100); // min delay here of 100us sendDataToLCD_delay(system_set_reset_4bit, 0); delay_10us( 5 ); // standard command delay time sendDataToLCD_delay(system_set_4_bit, 0); delay_10us( 5 ); // standard command delay time sendDataToLCD_delay(entry_mode, 0); sendDataToLCD_delay(display_on, 0); //sendDataToLCD_delay(set_dd_ram, 0); } // Sends a string to certain position of the display void sendStringToLCD (char *s, char pos) { int ptr = 0; sendDataToLCD_delay(set_dd_ram+pos, 0); while (s[ptr] != 0) sendDataToLCD_delay(s[ptr++], 1); } The configuration is for PORTB - PORTB.RB5=E, PORTB.RB4=RS, PORTB.RB0-RB3 - DATA (D4-D7), RW=GND, I think the problem lies in the config, but I can't see it clearly. Could you give me a slight hint, am I missing some operation or do I send the data in a wrong way? Thanks for your help! Midin
×
×
  • Create New...