Replies: 1 comment
-
I suggest using the Web Builder - most users don't need to look at the code at all or worry about how the code is written. The Web Builder even has links to board documentation for many - and many dedicated CNC boards, if not most, has labeling that shows what the connections are used for.
One of the boards uses shift registers external to the MCU for outputting data - the structures you refer to are reprensentations of those. BTW almost all of the other drivers/boards uses the traditional register/register offset nomenclature for pin mappings - and thus may offer a better fit for you? Or perhaps the generic map for the RP2040 is easier for you to understand.
I like Lao as it is kind of cute - ຄວາຍ, not that I understand any of it... |
Beta Was this translation helpful? Give feedback.
-
Serious question,
Is it the intention of the authors of this software that it should only be usable by those with extensive experience as embedded systems developers?
Is it the goa to limit adpotion of this system to only those who would already have the ability to develop it themselves.
If that is the case, then who would ever benefit from its existance?
Here is one example....
pin mappings... eg.
#define X_DIRECTION_PIN 5
the pin mapping file is not only code to included for the sake of later execution but it is also the one and only source of documentation available for the pin maps of a specific board. So instead of something that normal humans might understand if the try like above. Lets use this instead:
typedef union {
uint8_t value;
struct {
uint8_t m3_dir :1,
z_dir :1,
y_dir :1,
x_dir :1,
m3_step :1,
z_step :1,
y_step :1,
x_step :1;
};
} step_dir_t;
typedef union {
uint32_t value;
struct {
step_dir_t set;
step_dir_t reset;
uint16_t unused;
};
} step_dir_sr_t
#define STEP_PORT GPIO_SR8
#define DIRECTION_PORT GPIO_SR8
#define ENABLE_PORT GPIO_SR16
Ive been a professional software engineer since 1999? What the heck does the code above mean? Absolutley I could hit the books and dig in deep to fully understandf this. But to be honest, using this software is not worth the amount of time that would take. If it takes 3 weeks of commitment for an experienced software engineer to learn how to use your stuff, then maybe you should reconsider your approach.
That is why I have to ask what the goal is here? Why can the ports not just be listed out normally in a way that humans can read? How does this help the software, the adoption or the community to use this software?
I suppose that we should write our street signs in Aramaic?
FYI, I have also read dozens of datasheets for microcontrollers. It would have been more conventional to follow the convention of REGISTER, REGISTER_OFFSET. but that is not what is going on here. Please explain to me how one is supposed to interpret this?
Beta Was this translation helpful? Give feedback.
All reactions