That’s great news! I guessed that it would be something like that!
Not sure if v1.2 is too old for these glcd’s as it pre-dates my involvement with Midibox but I would definately try upgrading it to 1.9f.
I will take another look at the driver tonight, basically what you need to do is to increase the graphic box size. When you initialize the display, you set a graphic box and a text box. As MIOS doesn’t support the text mode, the whole display needs initializing as graphic.
Hah 1.2 is old as dirt. It’s not so much the bootloader, as the version of MIOS that’s on it. If you’ve (somehow?! it shouldn’t be possible) managed to get the latest MIOS on that old bootloader, you’ve done a bad thing and not read the read me file. Otherwise you’re also running ye olde mios. The GLCD drivers built into mios have definitely been upgraded since then, among other things.
After looking again at your picture, I think that it should work ‘as is’. The only thing that isn’t happening is that the whole screen isn’t being cleared. What makes me think that is the word “Klose” at the top of the second half of the display. This means that the driver will print to the other half as it is the last bit of the 'splash screen!
Therefore you need to concentrate on the USER_LCD_Clear function, take a copy of app_lcd.inc and have a play. You could try increasing the number of times that it loops (there are two loops, inner and outer which are controlled by the lines BRA_IFCLR)
Sorry for the late reply, I had a some busy times. This will sound rather stupid but for the first time I had problems with the SDCC builder, because the files are in other directories and so (Until now the SDCC skeleton contained everything I need and worked very fine). I read about the new toolchain on the Wiki
make and sh should be in the same location (C:/msys/1.0/bin). Obviously, make is running, so it is found in the path. but sh not? that is strange. I am wondering if you’ve changed the default installation location to somewhere special (bad), and then copy/pasted the command to copy the new make version to the correct location (good), and copy/pasted the PATH from the wiki which points to that location (good). This would allow make to run, but not much else
Also perhaps you are actually successfully running some other copy of make from your HDD. If you pasted the path from the wiki that would be unlikely.
A few tests, which will give us more insight:
Go ‘start…run…’ and type “cmd” (without the quotes) and hit enter.
Type in each of these commands and hit enter after each one, please copy and paste the results into a reply Edit: and i do mean, copy and paste, please don’t type it! If you don’t know how to copy/paste in a command prompt, google ‘dos quickedit’ (without the quotes))
sh --version
make --version
sed --version
sdcc --version
set MIOS
PATH
(You can edit the output from PATH if you are really sensitive about it, but it shouldn’t be anything secret I would think, and it’s best to leave it exactly as-is, to avoid errors)
[b]sh --version[/b]
GNU bash, version 2.04.0(1)-release (i686-pc-msys)
Copyright 1999 Free Software Foundation, Inc.
[b]make --version[/b]
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-pc-mingw32
[b]sed --version[/b]
GNU sed version 3.02
Copyright (C) 1998 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
[b]sdcc --version[/b]
SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.6.0 #4
309 (Jul 28 2006) (MINGW32)
The set MIOS has a positive result, but I have to be really honest with you, I installed the msys and minGW into the program files and the base package of mios is in the directory d:\midibox\mios_base_v1_0b/mios_base_v1_0b
C:\Documents and Settings\Hans Cornelis>set MIOS
MIOS_BIN_PATH=d:\midibox\mios_base_v1_0b\mios_base_v1_0b\bin
MIOS_PATH=d:\midibox\mios_base_v1_0b\mios_base_v1_0b
C:\Documents and Settings\Hans Cornelis>set path
Path="c:\Program Files\msys\1.0\bin";"c:\Program Files\MinGW\bin";"c:\Program Fi
les\gputils\bin";"c:\Program Files\gputils\bin";"c:\Program Files\SDCC"\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
I hope it’s a version problem, otherwise I must reinstall all the software. Sorry I didn’t install it in the standard directory, I like a little order on my computer and I always set directories of software into the program files… I did not concerned the consequences
All of your versions look OK. I am using a newer version of SDCC but that shouldn’t matter as you are not even getting to that bit
The only thing I did notice is that I believe that quotes are not necessary within path statements as semicolons are used as seperators so the quotes could be causing something strange? Try removing them and see what happens…
I like to order my data well too, but a lot of these kind of tools have issues with long file names. That is why make (which is the correct version as are all the other tools) can’t find sh… And it’s definitely why the quickstart page says “Install using the defaults.” LOL (don’t sweat it, I’m just having fun w/ you)
Unfortunately, and yes it is ugly and disorganised and also annoyed me, it may have to go in the root with a short file name path (no spaces).
If you feel like experimenting, you may like to try converting your paths in PATh and the MIOS vars, to short fie names, eg:
To be honest, I would recommend against it… Using long file names (even faking the short one) turned out to be a lot of hassle for me. New versions of the tools can (and did) mysteriously break… It’s just not worth it.
If your OCD is just killing you, maybe make a c:/dev directory and put it all in there or something
Life can sometimes be easy 8) windows put them there when you use the Tab key to enter long directory names.
The GLCD takes every place very nice, I tried to give some othe positions and it works very nice.
I looked at the clear_LCD function in app_lcd.inc, I think were I need to change things, I experimented with some other numbers and I saw changes in the snow area. But it only got smaller
;; clear the first 32*64 bytes
;; use MIOS_GLCD_GCURSOR_X and _Y as counter register
SET_BSR MIOS_GLCD_GCURSOR_Y ; 64 lines to clear
clrf MIOS_GLCD_GCURSOR_Y, BANKED
USER_LCD_ClearOuterLoop
SET_BSR MIOS_GLCD_GCURSOR_X ; 32 bytes to clear
clrf MIOS_GLCD_GCURSOR_X, BANKED
USER_LCD_ClearInnerLoop
movlw 0x00
rcall USER_LCD_Data
movlw 0xc0 ; write and increment
rcall USER_LCD_Cmd
incf MIOS_GLCD_GCURSOR_X, F, BANKED
BRA_IFCLR MIOS_GLCD_GCURSOR_X, 5, BANKED, USER_LCD_ClearInnerLoop
clrf MIOS_GLCD_GCURSOR_X, BANKED
incf MIOS_GLCD_GCURSOR_Y, F, BANKED
BRA_IFCLR MIOS_GLCD_GCURSOR_Y, 6, BANKED, USER_LCD_ClearOuterLoop
I changed the second flag of both BRA_IFCLR functions. But to be real honest I’m not really sure what this step does.
Right, I will try to describe what this section of the USER_LCD_Clear function does.
First it clears the GCURSOR_Y this is the beginning of the Outer loop then it clears the GCURSOR_X register and it sends a command to the display (0x24) to set the set the display address pointer to X=0 and Y=0.
Then you have the InnerLoop where it sends 0x0 to to the display followed by a command 0xc0 which tells the display to write the data at the current cursor position. It then increments the graphic cursor X. the first BRA_IFCLR then checks the X cursor and if bit 5 is not set (X is less than 32) then it loops.
Once X=32, it increments Y and checks that it is less than 64, if so it goes back to Outer loop and starts again. If not it sets the cursor back to 0/0 and returns.
As the second parameter of BRA_IFCLR is a bit then it cannot be larger than 7 which could explain why the box was getting smaller if you increased it too much. I would try changing the second one from 6 to 7 as this checks that it is lower than 128…
Thats great, isn’t it a wonderful feeling when it finally works ? 8)
The only problem with these things is I tend to get more satisfaction out of getting individual bits of a project working than I do actually finishing the project as a whole, this probably explains why I have so many bits of unfinished projects lying around
Now this is really good news! (And I would like to see a picture of that nice display fully working in all its beauty ;))
I understand that you have the display running in portrait mode. There is another driver for the T6963C in landscape mode (and as Stryd mentioned earlier, it takes more processing power away from the PIC as everything has to be rotated internally by 90 degrees first). Still, would you like to try your code modifications on that driver, too, and report how that performs? Like you, I would not mind dedicating a PIC solely to the task of driving a display, but I’d rather know for sure that it can work before actually spending money.
I did some changes to the horizontal driver as well, and it also seems to work very nice.
Like you, I would not mind dedicating a PIC solely to the task of driving a display, but I’d rather know for sure that it can work before actually spending money.
There is a SMD controller available from electronic assembly (my LCD is from them) which takes all the mathematical work on itself, it’s designed to work with the T6963 and it gives some nice graphical possibilities. Maybe in the future I can experiment with it a little and may be integrate it in the Midibox so that the core modules do what they do best (working with MIDI) and the EA IC does the graphical work for optimal speed of both components.
I know it’s a lot of directories, sorry for that. It’s just so strange that it takes the MIOS_GLCD_FONT, the _GLCD_FONT_SMALL and all the other fonts give me an error.