-
Posts
2,620 -
Joined
-
Last visited
-
Days Won
2
Content Type
Forums
Store
Downloads
Blogs
Posts posted by Joel Bodenmann
-
-
You cannot simply return that string. You have to copy that string into a buffer and return the pointer to that buffer. Trunet showed how it's done in his code:
strcpy(buf, "\x75\xD4\x84\xBD\x94\xE3\x72\xBA\x73\x76\x7E\x43\x2D\x67\x28\xBA\x17\x3A\xBB\x3D\x41\x05\xFA\xC1");
return buf;P.S. Can you please stop quoting the previous post all the time? Quotes are used to answer specific text parts, not the whole post. It's getting very messy otherwise ;-)
~ Tectu
-
I can save the string like this: "Z,\202=\\\221b¹\037FaÁÅdI:䨹½´>³Cè\017" within the mysave function:
Can you please elaborate how exactly you get this string? Some GDB examination?
The normal process:
- Make 100% sure that your ginputSetMouseCalibrationRoutines() routine gets called before the ginputGetMouse() routine.
- At the first execution, make sure that the third parameter of the ginputSetMouseCalibrationRoutines() routine is NULL.
- Execute the program
- Either extract the calibration data using a debugger / serial console or any other kind of output or store it on non-volatile memory
- Set the third parameter of the ginputSetMouseCalibrationRoutines() routine to point to your actual loading routine which provides the data that you just exctracted/saved.
- Done. Your touchscreen should now automatically load with the correct calibration data.
The wiki does also have this information.
~ Tectu
- Make 100% sure that your ginputSetMouseCalibrationRoutines() routine gets called before the ginputGetMouse() routine.
-
Are undefined preprocessor symbols handled consistently across compilers?
I'm not sure, that's why I am asking ;-)
Thank you for your suggestion. Looks like a safe way to go.
~ Tectu
-
how can I convert the calibration values into this format?
What format do you mean? You can just assign them as any normal struct member:
cal->ax = 32;
cal->bx = 37;
...If you refer to the strcpy() command of trunets code sample; it looks like he used some debugging tool to retrieve those values and simply copy pasted them.
~ Tectu
-
Too bad that they don't have separate macros for each individual digit before 8.x.
I don't know FreeRTOS that well, what do you think about this?
#if tskKERNEL_VERSION_MAJOR == 8
/* Types for 8.x */
#else
/* Types for 7.x (and lower?) */I assume taht this should work as the tskKERNEL_VERSION_MAJOR macro should not be implemented at all at any < 8.x release.
~ Tectu
-
Thank you for the link. We'll take a look if it's possible to make the types conditional by reading out the FreeRTOS version (is there such a macro?) at compile time. We are doing the same to support ChibiOS/RT 2.x and 3.x in the same way.
~ Tectu
-
Thank you very much for your feedback.
We are aware of the conflicting file names on a case insensitive operating system since a short while. The changes have been made but not yet tested and pushed. We will push a fix to the repository this evening (GTM+01:00).
About the definitions: Which FreeRTOS version are you using? We have tested with FreeRTOS 8.x without any problems so far. Neither did any user report a conflict there.
~ Tectu
-
There is currently no such feature under development.
However, we are planning to work on that in the future.
~ Tectu
-
There are no doubt similar routines in other embedded RTOS.
Only if your RTOS comes with it's own HAL. Otherwise you have to manually implement these functions.
~ Tectu
-
Done
~ Tectu
-
I know that this starts to get unrelated but in my opinion the efficiency of the error branch (0 returned) is far from important as the expected behavior should be that in 99.9999% of the cases a proper tag is returned.
~ Tectu
-
Sorry that this took so long, trunet.
We have finally added your driver to the official repository. Furthermore we have added you to the contributors table.
If you want to tell us your real name, we can add it there as well.
~ Tectu
-
Probably we could just typedef the widget tag type so it is a signed value and we can use -1 for an invalid widget (so the user can check for < 0) and use the positive values including zero as the real tag values?
Otherwise I'll just note that down in the documentation very very carefully.
~ Tectu
-
I took a look and I see one potential problem: The gwinGetTag() routine returns the tag of the widget or 0 if it is not a widget. However, it is completely valid to set the tag of a widget to 0. I think that this behavior should be changed.
~ Tectu
-
We appreciate feedback like this as we see where we have to improve our documentation.
The file board_ssd1289.h is a board file. You have to write the board file yourself as this depends on your wiring (how the display is connected to your microcontroller). You can find a template at /drivers/gdisp/SSD1289/board_ssd1289_template.h. Simply copy the file to your project directory, name it board_ssd1289.h and fill in the routines.
In order to see if everything compiles fine, I strongly recommend to just compile the template without filling in anything yet until it compiles.
~ Tectu
-
It is not possible for us to check and fix your include path.
However, you need more than just the path to the uGFX top level directory. You take a look at each modules Makefile (sys_make.mk) and the toplevel Makefile (gfx.mk) to see what needs to be included.
Note that you also need to manually add all the related source files manually to your IDEs file tree. That's the pain (and price) you have to pay for using an IDE :-P
Also make sure that the relative path that you showed in the image posted above is correct. The undefined reference error that you are getting is because the gfx.h file is not being included properly in your inclusion path.
~ Tectu
-
I'm not sure if I understand you correctly here. Do you want to get the actual size of the "client window area" that is now left? In that case, the thing you want is already there: gwinGetInnerWidth() and gwinGetInnerHeight() which are available for containers (like the frame widget).
Or am I completely misunderstanding you here and you want to specify the width and height of the client window and extend the borders and stuff from the parent widget to the outside in order not to decrease the width and height of the client window area?
~ Tectu
-
There is definitely a problem as I can confirm it myself now.
We will look into this as fast as possible.
In the meantime you can probably try to add a custom calibration load function (using ginputSetMouseCalibrationRoutines()) and returning an empty struct. "Empty struct" means that the parameters are set in a way that they don't change anything. Probably "neutral calibration data" would be the more appropriate term. The neutral struct looks like this:
ax = 1;
bx = 0;
cx = 0;
ay = 0;
by = 1;
cy = 0;The struct itself is defined in mouse.c:
typedef struct Calibration_t {
float ax;
float bx;
float cx;
float ay;
float by;
float cy;
} Calibration;~ Tectu
-
When you are getting an undefined reference to the gfxInit() call, then you either don't have the gfx.h header file properly included (by using #include "gfx.h"[/] at the appropriate place) or you have an issue in your inclusion path (Check your Makefile).
~ Tectu
-
I'll be out of the country from the 13th to the 22th of July for vacation. I had to promise my girlfriend not to take my notebook with me so I won't be able to maintain the forum.
The second uGFX maintainer, Andrew aka inmarket, will have a look at the forum during his spare time and handle posts accordingly.
Thank you for your understanding.
~ Tectu
-
You're very welcome. Please let us know about the result.
~ Tectu
-
I think that this seems to be a ChibiOS/RT + Keil problem where I cannot help. Please ask in the ChibiOS/RT community forum.
I'll be more than happy to help once you hit other uGFX problems.
~ Tectu
-
You are clearly having some inclusion problem.
Can you please make sure that all the ChibiOS/RT relevant files are there? I'd recommend you to compile and run the test suite from ChibiOS/RT to ensure that everything runs smoothly.
If you're using the project templates for Keil that come with some ChibiOS/RT versions, please make sure that they are still fully supported and work with your Keil version. I remember that Giovanni once mentioned that he's going to discontinue the IAR and Keil examples.
~ Tectu
-
Add to path, no result
Did the 'implicit declaration' warnings go away when you added the path? (Make sure that you don't manually include ch.h on top of the chibios.c file anymore).
I took a look at the link you posted and I don't see much similarity. He is definitely assigning a different datatype, but our pointer is of the type void*. You can try to force a cast to see what happens:
np = (void*)gfxAlloc((size_t)newsz);However, I am pretty sure that you're still having problems including the chibios.h properly. I don't know Keil, but is there any mechanism to give a list of all files that are included and compiled (-> files that are handled by the compiler & linker).
Also, is there something like a pedantic mode for the Keil compiler that is set on by default? If so, can you please try to disable that mode and lower the over-all warning level? We know that this is no permanent solution, just to see where the problem lies.
~ Tectu
ginput doesn't work with GINPUT_MOUSE_NEED_CALIBRATION FALSE
in Support
Posted
No reason to be sorry
Did it work?
~ Tectu