LCD_AnyPin.pbp


+ Reply to Thread
Results 1 to 40 of 109

Thread: LCD_AnyPin.pbp

Hybrid View

  1. #1
    Join Date
    Feb 2005
    Location
    Kolkata-India
    Posts
    563


    Did you find this post helpful? Yes | No

    Default Re: LCD_AnyPin.pbp

    Hi,

    Another weird proposition.

    LCDOUT is a blocking command if I am not wrong and it would be great if a task/que scheduler like app could be designed. During command delay it wastes 2 ms. I believe a whole LCD update/refresh within 200ms should be acceptable.

    So the idea is keeping a buffer equal to the total number of LCD character and updating the LCD from it character by character at 2ms interval, through an ISR. So a LCDOUT $FE, 1 just clears the buffer and LCDOUT puts the character in buffer rather than sending it directly to LCD I/Os. Making the timebase 1ms maybe through a compare module may couple other functions as well. RTC for example, non-blocking interrupt compatible delays, MUX options on the LCD lines etc. Use of 2 dimensional arrays makes it possible to have different LCD display screens ready to called just by a pointer may be automatically, sequentially, unattended.....

    Hey I am not drunk ........I did it a couple of years back in a hard way. LCD being handled entirely in ASM and not compatible with LCDOUT.

    Can't afford 2ms delays in my sinewave inverter (Work in Progress for a PBP WiKi)
    Regards

    Sougata

  2. #2
    Join Date
    Dec 2011
    Location
    IO93ok
    Posts
    190


    Did you find this post helpful? Yes | No

    Default Re: LCD_AnyPin.pbp

    Hi,

    I'm trying to use LCD_Anypin with an external clock but I'm not having success. Pic 16f819 (Posted in another thread in PBP Pro)

    I wrote some code incorporating LCD_Anypin and ran it on a development board with a 10Mhz crystal oscillator. I used one odd pin for the LCD.

    It compiled with DEFINE OSC 10 and it ran perfectly on the development board.


    I then placed the chip into a working board using an external 10Mhz clock input and set the fuses accordingly. This was the only change in hardware.

    Software wise I tried DEFINE EXTCLK_OSC and the same plus 10 on end, I also tried OSC 10 as well. Both these produced an output on the LCD but very oddly.

    4 line display. As a test I did LCDOUT $FE,$80,"TEST" and LCDOUT $FE,$94,"AAAA"

    resulted in:-

    1st Line has a flashing cursor at the end of the line.
    2nd line blank
    3rd line has ooo<
    4th line blank

    Adding charactrs to the LCDOUT matches character count on 3rd line. i.e AAAAAA produces ooooo<

    I wondered if there was something specific timing wise that LCD_Anypin wouldn't work correctly with an external clock?

    Anyone any ideas why I get the gobbledegook output with ext clk and correct text with xtal input??

    Thanks
    Last edited by tasmod; - 27th January 2012 at 14:59.

Members who have read this thread : 2

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts