I got a xpress board so thought try using it.
I tried converting a ili9341 spi glcd from mega328p to 16F18855 but got errors like in the screen shot.
Is there more help for xpress board other than demo vendor boards?
I'm using the sockets on the board labels and port labels adjacent.
Do these default or need ppi tool to set?
This is more complicated than uno or pics I got hence on to do list.
Tips welcome please.
It's not a page error it's just run out of memory, only 14K.
I think I got clock and mosi to set with pps tool but have to look up the rest on microchip.
A better xpress board would cost too much compared to avr or 18F board if they're around.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am looking at this. I want to dispute this. This is a page error cause by the sheer size of the subroutine and the use of Extended Fonts, Big Print Character sets. Whilst, I get the chip does have smaller memory this can be easiliy resolved.
Please post the exact code with the exact error and we can sort the compiler to provide a more meaningful message.
Last edit: Anobium 2018-03-12
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I tried just the glcd but got duplicate definition for x1 and x2. Is there a pps guide I've missed?
I wouldn't recommend xpress board to a new comer who's only used picaxe before. plug n play works but not plug n program. If I hadn't used avr first I'd think gcb very technical if I'd started with xpress board and probably stayed with picaxe.
The one I use seems limited even if I could use it. avr seems more for less money. IMHO.
#chip 16f18855,32#Config FEXTOSC_OFF, RSTOSC_HFINT32#Config WRT_OFF, CPD_ON, MCLRE_ON#option explicit'GeneratedbyPICPPSToolforGreatCowBasic'PPSToolversion:0.0.5.11'PinManagerdata:v1.55''Templatecommentatthestartoftheconfigfile'#startup InitPPS, 85SubInitPPSUNLOCKPPS'Module:MSSP1RB3PPS=0x0014'SCK1>RB3SSP1CLKPPS=0x000B'RB3>SCK1(bi-directional)RB5PPS=0x0015'SDO1>RB5LOCKPPSEndSub'Templatecommentattheendoftheconfigfile#include<glcd.h>;#define GLCD_TYPE GLCD_TYPE_ILI9341'PinmappingsforSPI-thisGLCDdriversupportsHardwareSPIandSoftwareSPI#define GLCD_DC portb.0 ; DIGITAL_8 ' Data command line#define GLCD_CS portb.2 ; DIGITAL_10 ' Chip select line#define GLCD_RESET portb.1 ; DIGITAL_9 ' Reset line, you could just tie high#define GLCD_DI portb.4 ; DIGITAL_12 ' Data in | MISO - Not used therefore not really required#define GLCD_DO portb.5 ; DIGITAL_11 ' Data out | MOSI#define GLCD_SCK portb.3 ; DIGITAL_13 ' Clock Line;#define ILI9341_HardwareSPI#define GLCD_EXTENDEDFONTSET1;;GLCDBackground=ILI9341_BLACKGLCDRotatePortrait_RevGLCDCLSILI9341_BLACKGLCDPrint(0,0,"hello",ILI9341_WHITE)end
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
@Stan. Let me help you.... please post as an attachment the original code when it would not fit the code into one page. Let us start at start resolve that and all we be good in the end.
Post the code and I will add a more meaningful error message as this will help others also.
Also, comparing microcontrollers is not fair using this method. IMHO.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The last code is more or less ili9341 glcd demo...without the demo.
So it's just clock and mosi need setting with pps tool?
I'm just not as competent with pics as other gcb users and pps just makes it more stuff to figure out.
I didn't check the 16f18855 spec because the board is recommended. I thought it would be lots of ram and prog space.
It is a good introduction to pics with pps.
I checked microchip pps, the memo code and the lists in the pps tool and found little correllation..or similarity. It was not fun. Most of the time gcb is fun.
I thought there was a guide somewhere on the forum or homepage.
As a picaxe user, uno and gcb was so easy. If I'd used xpress board I'd think "this is not as easy as picaxe". Please don't put off would be users. Picaxe users would not necesserrily need to use a pic. A uno would be like a picaxe 28X2 (18f25k22)... which most are to tight to buy, but more ram and cheaper!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The code was too big , 15914 bytes
I find the list in the pps input/output not like microchip or the demo files for xpress pps.
With the effort gone into pps support I can't find help. Sorry if I haven't looked hard enough.
I'd like to play with the xpress now I got it. Is it dumb downable?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
No need to dumb it down Stan.
Load up GCBASIC and go to:
C:\GCB@Syn\GreatCowBasic\Demos\Vendor Boards\Xpress Evaluation Board
Start with "01 Hello World.gcb" and work your way up to "34 Using Signal Measurement Timers to flash LEDS.gcb" You will learn a lot along the way and have fun at the same time.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I did flash led stuff last year. Cut and paste doesn't explain. Microchip is technical, a bit.
My first thought once I figure it is a template that sorts the ports as per board labels as a sub or include like arduino 328 include but not use digital when port is more familiar. I know portc is analogue but using analogue for when it's just on off is odd..I digress :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
For each demo there is much more than just cut and paste.
Take the the first demo - turn on an LED. Things that can be learnt.
What does the frequency value do? What does that control? What are the frequency options? Is this internal or external.
What do the two #config lines do? Load the generated HEX into MPLAB-IPE (ignoring the fact that this is JAVA and Stan you will have to get over this JAVA issue) look at the CONFIG in MPLAB-IPE to understand how these parameters change the configurations. What happens when these are missing
Then, program the board.... and, an LED is enabled.
My point. This is an example of the huge amount of insights you can gain from the simpliest of demo. If you study the code there must be a few hours of study. Then, try to do the same with the MPLAB-X tools... many days of learning.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Evan, you are soooo on point. This is exactly how I learned. What does every line of code do? Why does it do it? What are the options? How do they effect the result? Take an 12f1840, an 8 pin dip, same as the 555 I first got excited about turning on and off an led. Now I can make a 555 on steriods, communicate to a serial port, do math, control things, etc. etc. with the same 8 pin dip. The demos are INVALUABLE! The help manual works wonders, but the demos are the meat and potatoes and have been the beginning to MANY of the projects I have successfully implemented. I am glad to see you always say "check out the demos for this and that". If people started doing that more often, and building from there... well, that would just make sense. I appreciate ALL your demos, even if as simple as... "turn on an led and then, turn it off". Some of the demos are still a bit over my head, but the bottom line is... you make it all make sense. Keep doing what your doing. You may not get enough pats on the back for the time you put in to these demos, but I guarantee, you have helped many, many people just like me. I think too many folks are copy and paste addicts and can't ever figure out why things don't work. Start from scratch, learn a thing or two. Thats the only way to a successful project, In My Honest Opinion. Thanks again for all you do, GBC gurus! Can't wait for 1.0!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I didn't see a spi example and from the demos couldn't cobble one together.
This is my fault. I have looked up pic pps etc. with some interesting results but it's the strange to me naming of the pins. I think pic params are complicated on old pics but that's my prob.
So many things to assim, thanks for your patience.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I agree, so many things to assim. But that's what keeps it fun and interesting... Right? Using the Xpress board recently has forced me to try and get the hang of the PPS, and having the invaluable PPS tool right in GCB helps a bunch.
Last edit: Moto Geek 2018-03-13
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ignore the naming of the Pins, that has nothing to do with the Microcontroller.
I bet that got your attention, now let me explain why:
Look closely at the Xpress Board and you will see Two labels per Pin. The Outer labels, such as RB0, RC7 ... etc. are the actual device Pins. The inner Labels, AN, PWM ... etc, are just placeholders for MikroBUS compatible Plugin Modules, known as Click Boards, they are a modern equivalent to Shields but are not dependent on a particular development board or device family.
Initially most, if not all, of the Microcontroller Pins are set for Digital I/O.
You can decide which Pins you want to use for which peripherals, such as SPI or I2C etc. and then allocate them with the PPS Tool that is built into GCBASIC.
Any unallocated Pins remain available for Digital I/O.
If you were planning to use a Click Board then you would use the GCBASIC PPS Tool to allocate the Peripherals you need to the Corresponding Labels on the MikroBUS footprint.
If you are using your own hardware then you can use whatever pins suit your application for whatever purpose.
By starting your journey with SPI you have chosen the hardest place to start, but let's tackle that challenge:
If you look at the Xpress board again notice that the SPI interface is Labeled as:
RB3 <-> SCK
RB4 <-> MISO
RB5 <-> MOSI
Now we use the PPS Tool to Allocate those Pins to the Peripheral.
Notice that the board only indicates labels for One SPI Port, but the PIC16F18855 contains two SPI ports, you can choose which one to use or you could use both by allocating the second SPI module to alternative Pins.
Open the PPS Tool, the Toolbar Button between “flash” and “terminal”.
Be patient, it takes some time to read all the XML files and draw the display.
The Image below shows the PPS Tool after completing all of the following steps.
It may look very different when it initially loads, don’t let that worry you.
Select the PIC (Top Left) as 16F18855
First we will allocate the SPI Clock to the PIN RB3.
Go Down To PPS Outputs:
In the Peripheral output drop down list (It is a long list) scroll down to SCK1 (or 2 if you prefer the second SPI module) and select it. Then from the adjacent drop down list labeled Pin select RB3.
Now Click the “Add” button below the PIN you selected.
It will generate code on the Right, just ignore that for now.
If you look at the bottom Left of the PPS Tool you will see a Pinout Diagram of the Device you selected. Now notice how, as you add Peripherals to Pins they change colour to indicate that they are in use.
That diagram is a handy guide when you are trying to fit several peripheral devices on a low pin count device and a handy guide to which pins are still available as Digital I/O. It can also assist you in routing your Printed Circuit Board as you can often change a pin allocation rather than have to reroute a trace.
Note: Different device manufactures use different pin names for the same thing in SPI.
To add to the confusion the industry decided to create a standard for all new entrants.
But the rest, which is 90% of the manufacturers, are free to continue as they were. MikroBUS (and Arduino) being newcomers, uses the Standard, Microchip still uses its own names.
Here is as a comparison to help clarify:
If you are working in SPI Master Mode, which is the default, then SDI is Serial Data In and is equivalent to MISO (Master In Slave Out) and SDO is Serial Data Out or MOSI (Master Out Slave In).
So to allocate the MISO (SDI) pin:
Go Up To PPS Inputs then, from the Peripheral input List, select SDI1 and the Pin as RB4
Then Click the “Add” button below the PIN you selected.
Finally we allocate MOSI (SDO) to RB5:
Go back down to PPS Outputs and select Peripheral Output as SDO1 and pin as RB5.
Then Click the “Add” button below the PIN you selected.
And we are done, the PPS Tool should look similar to this:
Copy the code from the Right hand window and paste it into your code near the top, so that the PIN’s are allocated before you use them.
'Generated by PIC PPS Tool for Great Cow Basic
'PPS Tool version: 0.0.5.11
'PinManager data: v1.55
'
'Template comment at the start of the config file
'
#startup InitPPS, 85
Sub InitPPS
'Module: MSSP1
RB3PPS = 0x0014 'SCK1 > RB3
SSP1CLKPPS = 0x000B 'RB3 > SCK1 (bi-directional)
SSP1DATPPS = 0x000C 'RB4 > SDI1
RB5PPS = 0x0015 'SDO1 > RB5
End Sub
'Template comment at the end of the config file
If you needed any other Peripherals allocated you would normally do them all at the same time (on the Xpress Board you would probably want to allocate TX to RC0 for the Serial Bridge, it helps with debugging, Rx is connected by default). Unused peripherals, however, don’t need to be allocated freeing pins for Standard I/O functions. Which is why I said elsewhere that this board requires you to know and understand the hardware requirements of the target applicationand not, as Arduino does, the development board.
So with PPS the XPress board adapts to your application, you don't have to adapt your application to suit the XPress board.
I hope that helps clarify, and gives you a better Idea of why Even and I like to recommend this board, even though it is far more advanced than most beginners would expect.
Cheers
Chris
p.s.
Now you are armed to make, test and contribute that elusive SPI example you mentioned :)
Brill! @Chris. The labels are confusing. Thought why put them in fixed position if pins are programmable. Thought is that default when manufactured. Glad you explained.
My code is the same as yours but not using miso
The github link I entered 16f18855 and it said no files found and in the list 3rd 4th files no spi.
I put the new ili9341 glcd in include after deleting old and still get the duplicate definition x1 x2 error but it flashes but doesn't say program size and don't work.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
@Stan, try the GitHub again. I just tried - works. Please provide screen shot of what does not work. Having you find the demos will save you many hours of work.
Re x1 and x2. Post the ASM. Let me look as the ASM.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I got a xpress board so thought try using it.
I tried converting a ili9341 spi glcd from mega328p to 16F18855 but got errors like in the screen shot.
Is there more help for xpress board other than demo vendor boards?
I'm using the sockets on the board labels and port labels adjacent.
Do these default or need ppi tool to set?
This is more complicated than uno or pics I got hence on to do list.
Tips welcome please.
Last edit: stan cartwright 2018-03-09
It's not a page error it's just run out of memory, only 14K.
I think I got clock and mosi to set with pps tool but have to look up the rest on microchip.
A better xpress board would cost too much compared to avr or 18F board if they're around.
I am looking at this. I want to dispute this. This is a page error cause by the sheer size of the subroutine and the use of Extended Fonts, Big Print Character sets. Whilst, I get the chip does have smaller memory this can be easiliy resolved.
Please post the exact code with the exact error and we can sort the compiler to provide a more meaningful message.
Last edit: Anobium 2018-03-12
I tried just the glcd but got duplicate definition for x1 and x2. Is there a pps guide I've missed?
I wouldn't recommend xpress board to a new comer who's only used picaxe before. plug n play works but not plug n program. If I hadn't used avr first I'd think gcb very technical if I'd started with xpress board and probably stayed with picaxe.
The one I use seems limited even if I could use it. avr seems more for less money. IMHO.
@Stan. Let me help you.... please post as an attachment the original code when it would not fit the code into one page. Let us start at start resolve that and all we be good in the end.
Post the code and I will add a more meaningful error message as this will help others also.
Also, comparing microcontrollers is not fair using this method. IMHO.
I have examined the error. We have an issue within the GLCD libraries impacting three GLCD libraries.
I have updated for libraries to remove the use of the X1 and Y1 byte variable which clashed with the regiser/bit also called X1 and Y1.
Get the latest library from here: https://sourceforge.net/p/gcbasic/code/HEAD/tree/GCBASIC/trunk/include/glcd_ILI9341.h?format=raw
The last code is more or less ili9341 glcd demo...without the demo.
So it's just clock and mosi need setting with pps tool?
I'm just not as competent with pics as other gcb users and pps just makes it more stuff to figure out.
I didn't check the 16f18855 spec because the board is recommended. I thought it would be lots of ram and prog space.
It is a good introduction to pics with pps.
I checked microchip pps, the memo code and the lists in the pps tool and found little correllation..or similarity. It was not fun. Most of the time gcb is fun.
I thought there was a guide somewhere on the forum or homepage.
As a picaxe user, uno and gcb was so easy. If I'd used xpress board I'd think "this is not as easy as picaxe". Please don't put off would be users. Picaxe users would not necesserrily need to use a pic. A uno would be like a picaxe 28X2 (18f25k22)... which most are to tight to buy, but more ram and cheaper!
The code was too big , 15914 bytes
I find the list in the pps input/output not like microchip or the demo files for xpress pps.
With the effort gone into pps support I can't find help. Sorry if I haven't looked hard enough.
I'd like to play with the xpress now I got it. Is it dumb downable?
No need to dumb it down Stan.
Load up GCBASIC and go to:
C:\GCB@Syn\GreatCowBasic\Demos\Vendor Boards\Xpress Evaluation Board
Start with "01 Hello World.gcb" and work your way up to "34 Using Signal Measurement Timers to flash LEDS.gcb" You will learn a lot along the way and have fun at the same time.
I did flash led stuff last year. Cut and paste doesn't explain. Microchip is technical, a bit.
My first thought once I figure it is a template that sorts the ports as per board labels as a sub or include like arduino 328 include but not use digital when port is more familiar. I know portc is analogue but using analogue for when it's just on off is odd..I digress :)
For each demo there is much more than just cut and paste.
Take the the first demo - turn on an LED. Things that can be learnt.
My point. This is an example of the huge amount of insights you can gain from the simpliest of demo. If you study the code there must be a few hours of study. Then, try to do the same with the MPLAB-X tools... many days of learning.
Evan, you are soooo on point. This is exactly how I learned. What does every line of code do? Why does it do it? What are the options? How do they effect the result? Take an 12f1840, an 8 pin dip, same as the 555 I first got excited about turning on and off an led. Now I can make a 555 on steriods, communicate to a serial port, do math, control things, etc. etc. with the same 8 pin dip. The demos are INVALUABLE! The help manual works wonders, but the demos are the meat and potatoes and have been the beginning to MANY of the projects I have successfully implemented. I am glad to see you always say "check out the demos for this and that". If people started doing that more often, and building from there... well, that would just make sense. I appreciate ALL your demos, even if as simple as... "turn on an led and then, turn it off". Some of the demos are still a bit over my head, but the bottom line is... you make it all make sense. Keep doing what your doing. You may not get enough pats on the back for the time you put in to these demos, but I guarantee, you have helped many, many people just like me. I think too many folks are copy and paste addicts and can't ever figure out why things don't work. Start from scratch, learn a thing or two. Thats the only way to a successful project, In My Honest Opinion. Thanks again for all you do, GBC gurus! Can't wait for 1.0!
I didn't see a spi example and from the demos couldn't cobble one together.
This is my fault. I have looked up pic pps etc. with some interesting results but it's the strange to me naming of the pins. I think pic params are complicated on old pics but that's my prob.
So many things to assim, thanks for your patience.
@Stan. So, go to Github demos. Type 16f18855 and you will get the SPI demo for this microcontroller.
Here is the link to GitHub Demos: https://github.com/Anobium/Great-Cow-BASIC-Demonstration-Sources/find/master simply enter
16f18855
and the 3rd and 4th files happen to be the SPI demos for this microcontroller.Simples (as the Meerkat would say).
For those that do not know of the advertising campaign using the Meerkat, see, https://en.wikipedia.org/wiki/Compare_the_Meerkat. Enjoy. I love Sergei - he reminds me of myself.
Last edit: Anobium 2018-03-13
I agree, so many things to assim. But that's what keeps it fun and interesting... Right? Using the Xpress board recently has forced me to try and get the hang of the PPS, and having the invaluable PPS tool right in GCB helps a bunch.
Last edit: Moto Geek 2018-03-13
@Stan - and anyone else wondering about PPS
Ignore the naming of the Pins, that has nothing to do with the Microcontroller.
I bet that got your attention, now let me explain why:
Look closely at the Xpress Board and you will see Two labels per Pin. The Outer labels, such as RB0, RC7 ... etc. are the actual device Pins. The inner Labels, AN, PWM ... etc, are just placeholders for MikroBUS compatible Plugin Modules, known as Click Boards, they are a modern equivalent to Shields but are not dependent on a particular development board or device family.
See Here: https://www.mikroe.com/click for information on, and a selection of, Click Boards.
Initially most, if not all, of the Microcontroller Pins are set for Digital I/O.
You can decide which Pins you want to use for which peripherals, such as SPI or I2C etc. and then allocate them with the PPS Tool that is built into GCBASIC.
Any unallocated Pins remain available for Digital I/O.
If you were planning to use a Click Board then you would use the GCBASIC PPS Tool to allocate the Peripherals you need to the Corresponding Labels on the MikroBUS footprint.
If you are using your own hardware then you can use whatever pins suit your application for whatever purpose.
By starting your journey with SPI you have chosen the hardest place to start, but let's tackle that challenge:
If you look at the Xpress board again notice that the SPI interface is Labeled as:
RB3 <-> SCK
RB4 <-> MISO
RB5 <-> MOSI
Now we use the PPS Tool to Allocate those Pins to the Peripheral.
Notice that the board only indicates labels for One SPI Port, but the PIC16F18855 contains two SPI ports, you can choose which one to use or you could use both by allocating the second SPI module to alternative Pins.
Open the PPS Tool, the Toolbar Button between “flash” and “terminal”.
Be patient, it takes some time to read all the XML files and draw the display.
The Image below shows the PPS Tool after completing all of the following steps.
It may look very different when it initially loads, don’t let that worry you.
Select the PIC (Top Left) as 16F18855
First we will allocate the SPI Clock to the PIN RB3.
Go Down To PPS Outputs:
In the Peripheral output drop down list (It is a long list) scroll down to SCK1 (or 2 if you prefer the second SPI module) and select it. Then from the adjacent drop down list labeled Pin select RB3.
Now Click the “Add” button below the PIN you selected.
It will generate code on the Right, just ignore that for now.
If you look at the bottom Left of the PPS Tool you will see a Pinout Diagram of the Device you selected. Now notice how, as you add Peripherals to Pins they change colour to indicate that they are in use.
That diagram is a handy guide when you are trying to fit several peripheral devices on a low pin count device and a handy guide to which pins are still available as Digital I/O. It can also assist you in routing your Printed Circuit Board as you can often change a pin allocation rather than have to reroute a trace.
Note:
Different device manufactures use different pin names for the same thing in SPI.
To add to the confusion the industry decided to create a standard for all new entrants.
But the rest, which is 90% of the manufacturers, are free to continue as they were.
MikroBUS (and Arduino) being newcomers, uses the Standard, Microchip still uses its own names.
Here is as a comparison to help clarify:
If you are working in SPI Master Mode, which is the default, then SDI is Serial Data In and is equivalent to MISO (Master In Slave Out) and SDO is Serial Data Out or MOSI (Master Out Slave In).
So to allocate the MISO (SDI) pin:
Go Up To PPS Inputs then, from the Peripheral input List, select SDI1 and the Pin as RB4
Then Click the “Add” button below the PIN you selected.
Finally we allocate MOSI (SDO) to RB5:
Go back down to PPS Outputs and select Peripheral Output as SDO1 and pin as RB5.
Then Click the “Add” button below the PIN you selected.
And we are done, the PPS Tool should look similar to this:
Copy the code from the Right hand window and paste it into your code near the top, so that the PIN’s are allocated before you use them.
If you needed any other Peripherals allocated you would normally do them all at the same time (on the Xpress Board you would probably want to allocate TX to RC0 for the Serial Bridge, it helps with debugging, Rx is connected by default). Unused peripherals, however, don’t need to be allocated freeing pins for Standard I/O functions. Which is why I said elsewhere that this board requires you to know and understand the hardware requirements of the target application and not, as Arduino does, the development board.
So with PPS the XPress board adapts to your application, you don't have to adapt your application to suit the XPress board.
I hope that helps clarify, and gives you a better Idea of why Even and I like to recommend this board, even though it is far more advanced than most beginners would expect.
Cheers
Chris
p.s.
Now you are armed to make, test and contribute that elusive SPI example you mentioned :)
Last edit: Chris Roper 2018-03-13
Brill! @Chris. The labels are confusing. Thought why put them in fixed position if pins are programmable. Thought is that default when manufactured. Glad you explained.
My code is the same as yours but not using miso
this gives duplicate definition for x1 and x2 as in my 3rd post. I was on the right track.
I'll try again.
@Stan. Please try to keep up, see https://sourceforge.net/p/gcbasic/discussion/579126/thread/6c935723/#51a5/1ccd regarding x1 and x2 error. This had nothing to do with PPS.
I am guess you also missed re SPI https://sourceforge.net/p/gcbasic/discussion/579126/thread/6c935723/#b9fb/3bce
and, https://sourceforge.net/p/gcbasic/discussion/579126/thread/6c935723/#d067/d714
Last edit: Anobium 2018-03-13
The github link I entered 16f18855 and it said no files found and in the list 3rd 4th files no spi.
I put the new ili9341 glcd in include after deleting old and still get the duplicate definition x1 x2 error but it flashes but doesn't say program size and don't work.
@Stan, try the GitHub again. I just tried - works. Please provide screen shot of what does not work. Having you find the demos will save you many hours of work.
Re x1 and x2. Post the ASM. Let me look as the ASM.
The asm file.
The pps tool input output lists are unfamiliar to me.
Last edit: stan cartwright 2018-03-13
You have not updated the .h file. The asm shows this to be the case. Download the latest .h file for your glcd device.
many leds make glcd work...not