LCDproc development and user support list

Text archives Help

[Lcdproc] HD44780-winamp gets overflooded with Hearts after upgrading to CVS

Chronological Thread 
  • From: dura-zell AT (Sven Mertens)
  • Subject: [Lcdproc] HD44780-winamp gets overflooded with Hearts after upgrading to CVS
  • Date: Sat Mar 12 12:00:02 2005

Joris Robijn schrieb:
> On 11 Mar 2005 at 14:44, Sven Mertens wrote:
>>the 0.5. I reviewed the compilelog too, there are some messages about
>>"comparison between signed and unsigned" and "declared but unused" but
>>nothing more. Is this a hint?
> No. There are some identifiers for automatic version info (which is not
> used at all) and I guess maybe one or two actually unused vars.
>>So, I had a look at the code. Since I don't know C I can only look for
>>"logical" errors or problems, I can't look at the code-syntax or something
>>like this. My main-view was at hd44780_init in hd44780.c and the refered
>>function in hd44780-winamp.c
>>So, since I'm a stupid newbie I have to ask some stupid questions wich may
>>help to understand and therefore help to find eventually a weak point
>>somewhere ;)
>>1. Is this the code to generate a delay:
>>p->hd44780_functions->uPause (p, 40);
>>How long does this particular example delays? 0.040 secs?
> Yes. No 40us. You can find how it is done in the actual uPause function
> somewhere. The actual function pointer is put in the uPause variable
> above in the init function of one of the subdrivers.
>>2. HD44780_init has this comment:
>>// Opens com port and sets baud correctly...
>>Does this mean it refers only to serial COM-Ports e.g. COM1, COM2?
> Erm this is a remainder of ancient code that did serial communication...
>>3. Are I'm right when I assume that the framebuffer is a space in
>>computermemory and NOT at the display? (Like a framebuffer on a
>>graphicscard is a space on the videoram and not in the monitor)
> Yep. And the lcd_contents is a second buffer. The framebuffer is modified
> by placing chars etcetera. Its contents is the copied to the lcd_contents
> buffer at the end of the flush() function. With the help of lcd_contents
> flush() can do an incremental update, i.e. only update changed
> characters. The LCD has it's own character buffer, but it cannot be
> accessed for read and it writes slowly.
>>5. Does
>>"connectionMapping[p->connectiontype_index].init_fn (drvthis);"
>>in file "hd44780.c (line 350)"
>>initialize my display with function
>>"hd_init_winamp (Driver *drvthis)"
>>in file "hd44780-winamp.c" ?
> Yes that's right. The complete init sequence is "spread" over multiple
> functions.
>>You told me to have a look at the code, to compare the code and watch and
>>compare the logfiles. As you are busy and don't have a display wich has my
>>problems I like to do some work for you, but maybe I'm to new to this
>>stuff, so if you can give me some hints where I can exactly look i would
>>welcome this.
> Just find out what the init functions do in sequence.
>>If you have something where I can read to get an answer to my questions
>>(the above listed ones) feel free to give me a link or fill my mailbox
>>with docs. ;) If it would help to take my old C-book wich has, hardly
>>used, found a place on my desktop, I will take it and try to learn
>>something about C.
> Always good. But you could also start with trying to understand the code
> and just try some things.
> Success. If any questions just let me know.
> Joris
> --
> Joris Robijn
> <joris AT>
> Mobile: +31 6 288 41 964
> // To understand recursion, we must first understand recursion
Hi there again

Some more questions ;) (And I will truncate the message after this one)

At the beginning: Am I allowed to deactivate the output of the GNU
License while I'm testing? (i.e. comment out the function call.) I will
put it back when I'm finnished. It fills up 2 screens of my terminal
wich I'm using here (SSH with putty) as I'm not sitting directly in
front of the computer wich is the LCD connected to (the computer has no
monitor). Without it it would make the logfiles more readable.

As I'm through with reading the hd44780 related files, today I've taken
the main.c wich is, as far I have understood, the file wich is the LCDd
executable formed from, and drivers.c / driver.c wich seems to parse the
driverlist and calls their init functions.

What does the "->" in
"driver->init = driver_init;"
mean? I've found those "->" in many ohter places too. Knowing this may
help to understand the structure of the code.

Whats the meaning of "waving to the parent"? Is this a signal wich is
send to the LCDd executable after it has created a daemonized process in
the background to tell the LCDd the process was created sucessfully? And
what is the signal "SIGUSR1" wich is send to the parent?

I found a loop wich is loading a set of drivers in main.c. Is this a
feature for future realeases wich allows to support more than one
display type Or is this used to load an internal
keypad/LED-latch/key-matrix driver?

I found some timing related functions in timing.h and in hd4480.c Wich
ones are used, e.g. wich one do I have to modify if I want to do some
silly experiments?

I found that in hd44780.c at line 255:
"memset(p->cc_dirty, 1, NUM_CCs); /* all custom chars dirty */"
What is the meaning of "dirty chars" ?

So, I think I'm done with reading the code. I tried to understand what
the functions do and were they are (And I think I understood most of
them). Just placed some delays and decreased and inreased some of the
already existent delays. As expected there's no noticable change in the
behaviour of my display. ;)
Would be strange if that helped, wouldn't it?

So, as I'm finnished with that I'll take a break, getting confused by
reading all the incomprehensible codelines ;) Maybe the answers to my
questions above will help me to continue. Btw, the above mentioned book
is a C++ book, it won't help me :/


Sven Mertens

Archive powered by MHonArc 2.6.18.

Top of page