Why are logically related bit fields in MCU registers often in separate locationsWhy are there no 256-bit or 512-bit microprocessors?I2C slave address not acknowledged (sometimes)how to access the bit fields of an registers in microcontrollerEndian problem on STM32It is better to fix x's in the simulation or in the design?SPI transaction between FPGA and MicrocontrollerWhy does PIC MCU have (and needs) duplicate registers?Configure UCSCTL0 register MSP430F5529Detecting DMA overflow in arbitrary waveform generationBus fault when accessing mcu internal peripheral
Is there a way to generate a mapping graph like this?
Vehemently against code formatting
Germany rejected my entry to Schengen countries
How to tease a romance without a cat and mouse chase?
How could Dwarves prevent sand from filling up their settlements
Hotel booking: Why is Agoda much cheaper than booking.com?
pwaS eht tirsf dna tasl setterl fo hace dorw
Is there a word for pant sleeves?
Does science define life as "beginning at conception"?
Filter a file list against an integer array?
Way of refund if scammed?
How should I mix small caps with digits or symbols?
How would a physicist explain this starship engine?
Do most Taxis give Receipts in London?
Why use nominative in Coniugatio periphrastica passiva?
How to play vs. 1.e4 e5 2.Nf3 Nc6 3.Bc4 d6?
1950s or earlier book with electrical currents living on Pluto
Circuit construction for execution of conditional statements using least significant bit
Department head said that group project may be rejected. How to mitigate?
What causes a person to remain in this world as a ghost?
How can I use 400 ASA film in a Leica IIIf, which does not have options higher than 100?
tikz: 5 squares on a row, roman numbered 1 -> 5
How do we explain the use of a software on a math paper?
Gambler's Fallacy Dice
Why are logically related bit fields in MCU registers often in separate locations
Why are there no 256-bit or 512-bit microprocessors?I2C slave address not acknowledged (sometimes)how to access the bit fields of an registers in microcontrollerEndian problem on STM32It is better to fix x's in the simulation or in the design?SPI transaction between FPGA and MicrocontrollerWhy does PIC MCU have (and needs) duplicate registers?Configure UCSCTL0 register MSP430F5529Detecting DMA overflow in arbitrary waveform generationBus fault when accessing mcu internal peripheral
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
Forgive me if this question has already been answered, but I was unable to find an answer either on this page or in the wider internet.
I'm an experienced developer with decent knowledge regarding low level programming, but relatively new to embedded development. I've been teaching myself embedded systems development using a ST-NUCLEO144 board, which features an STM32F746ZG MCU. One question that seems non-obvious to me is that why logically related bit fields in a register may be in different locations.
One example is the USART_CR1
register on the STM32746ZG. The M0
and M1
bit fields together control the word length in USART TX/RX, a combined 2-bit value of 0b00
specifies 8-bits, 0b01
specifies 9-bits, etc. This is all quite straightforward, except that M0
is at bit 12 and M1
is at bit 28... why is this?
Is this for legacy design reasons, such as a new feature was inserted into previously reserved space? Is it for reasons related to the chip design, that I'm not considering, or is there a greater purpose to this that I'm not seeing?
Obviously this is pretty trivial to overcome with bit-masking but I'm just curious. Thanks in advance.
microcontroller stm32 embedded
New contributor
$endgroup$
add a comment |
$begingroup$
Forgive me if this question has already been answered, but I was unable to find an answer either on this page or in the wider internet.
I'm an experienced developer with decent knowledge regarding low level programming, but relatively new to embedded development. I've been teaching myself embedded systems development using a ST-NUCLEO144 board, which features an STM32F746ZG MCU. One question that seems non-obvious to me is that why logically related bit fields in a register may be in different locations.
One example is the USART_CR1
register on the STM32746ZG. The M0
and M1
bit fields together control the word length in USART TX/RX, a combined 2-bit value of 0b00
specifies 8-bits, 0b01
specifies 9-bits, etc. This is all quite straightforward, except that M0
is at bit 12 and M1
is at bit 28... why is this?
Is this for legacy design reasons, such as a new feature was inserted into previously reserved space? Is it for reasons related to the chip design, that I'm not considering, or is there a greater purpose to this that I'm not seeing?
Obviously this is pretty trivial to overcome with bit-masking but I'm just curious. Thanks in advance.
microcontroller stm32 embedded
New contributor
$endgroup$
add a comment |
$begingroup$
Forgive me if this question has already been answered, but I was unable to find an answer either on this page or in the wider internet.
I'm an experienced developer with decent knowledge regarding low level programming, but relatively new to embedded development. I've been teaching myself embedded systems development using a ST-NUCLEO144 board, which features an STM32F746ZG MCU. One question that seems non-obvious to me is that why logically related bit fields in a register may be in different locations.
One example is the USART_CR1
register on the STM32746ZG. The M0
and M1
bit fields together control the word length in USART TX/RX, a combined 2-bit value of 0b00
specifies 8-bits, 0b01
specifies 9-bits, etc. This is all quite straightforward, except that M0
is at bit 12 and M1
is at bit 28... why is this?
Is this for legacy design reasons, such as a new feature was inserted into previously reserved space? Is it for reasons related to the chip design, that I'm not considering, or is there a greater purpose to this that I'm not seeing?
Obviously this is pretty trivial to overcome with bit-masking but I'm just curious. Thanks in advance.
microcontroller stm32 embedded
New contributor
$endgroup$
Forgive me if this question has already been answered, but I was unable to find an answer either on this page or in the wider internet.
I'm an experienced developer with decent knowledge regarding low level programming, but relatively new to embedded development. I've been teaching myself embedded systems development using a ST-NUCLEO144 board, which features an STM32F746ZG MCU. One question that seems non-obvious to me is that why logically related bit fields in a register may be in different locations.
One example is the USART_CR1
register on the STM32746ZG. The M0
and M1
bit fields together control the word length in USART TX/RX, a combined 2-bit value of 0b00
specifies 8-bits, 0b01
specifies 9-bits, etc. This is all quite straightforward, except that M0
is at bit 12 and M1
is at bit 28... why is this?
Is this for legacy design reasons, such as a new feature was inserted into previously reserved space? Is it for reasons related to the chip design, that I'm not considering, or is there a greater purpose to this that I'm not seeing?
Obviously this is pretty trivial to overcome with bit-masking but I'm just curious. Thanks in advance.
microcontroller stm32 embedded
microcontroller stm32 embedded
New contributor
New contributor
New contributor
asked 1 hour ago
ajxsajxs
1113
1113
New contributor
New contributor
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
$begingroup$
You are right with
"..for legacy design reasons, such as a new feature was inserted into previously reserved space..".
As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.
That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.
$endgroup$
add a comment |
$begingroup$
Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?
In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.
For example, here is the USART_CR1
register of the old STM32F1xx family.
Figure 1. STM32F10xxx USART_CR1 register usage
Image source: STM32F10xxx family reference manual RM0008, section 27.6.4
That older USART (with only 2 word length options) needs only one M
bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".
As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0
, with M1
now in bit 28 (previously reserved in the STM32F1 register map, as you see above).
Figure 2. STM32F74xxx USART_CR1 register usage
Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1
They couldn't put the new M1
bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.
So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.
Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.
$endgroup$
1
$begingroup$
Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
$endgroup$
– ajxs
43 mins ago
1
$begingroup$
@ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
$endgroup$
– SamGibson
34 mins ago
1
$begingroup$
That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
$endgroup$
– ajxs
31 mins ago
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("schematics", function ()
StackExchange.schematics.init();
);
, "cicuitlab");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "135"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
ajxs is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f439226%2fwhy-are-logically-related-bit-fields-in-mcu-registers-often-in-separate-location%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
You are right with
"..for legacy design reasons, such as a new feature was inserted into previously reserved space..".
As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.
That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.
$endgroup$
add a comment |
$begingroup$
You are right with
"..for legacy design reasons, such as a new feature was inserted into previously reserved space..".
As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.
That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.
$endgroup$
add a comment |
$begingroup$
You are right with
"..for legacy design reasons, such as a new feature was inserted into previously reserved space..".
As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.
That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.
$endgroup$
You are right with
"..for legacy design reasons, such as a new feature was inserted into previously reserved space..".
As far as I know, bit positions themselves have almost no design impact (in chip implementation I mean) in most cases. Designers usually try to utilise whatever is available. And in some cases like when you're trying to extend widths etc.
That said, there are however some cases where the bit positions are intentionally kept far apart. Specifically for bits that are critical and are NOT to be modified by unintentional writes (due to wrong position/masks, or scrambled for security) that can cause the system to end up in an undesired state.
answered 51 mins ago
Rajesh SRajesh S
14513
14513
add a comment |
add a comment |
$begingroup$
Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?
In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.
For example, here is the USART_CR1
register of the old STM32F1xx family.
Figure 1. STM32F10xxx USART_CR1 register usage
Image source: STM32F10xxx family reference manual RM0008, section 27.6.4
That older USART (with only 2 word length options) needs only one M
bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".
As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0
, with M1
now in bit 28 (previously reserved in the STM32F1 register map, as you see above).
Figure 2. STM32F74xxx USART_CR1 register usage
Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1
They couldn't put the new M1
bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.
So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.
Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.
$endgroup$
1
$begingroup$
Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
$endgroup$
– ajxs
43 mins ago
1
$begingroup$
@ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
$endgroup$
– SamGibson
34 mins ago
1
$begingroup$
That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
$endgroup$
– ajxs
31 mins ago
add a comment |
$begingroup$
Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?
In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.
For example, here is the USART_CR1
register of the old STM32F1xx family.
Figure 1. STM32F10xxx USART_CR1 register usage
Image source: STM32F10xxx family reference manual RM0008, section 27.6.4
That older USART (with only 2 word length options) needs only one M
bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".
As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0
, with M1
now in bit 28 (previously reserved in the STM32F1 register map, as you see above).
Figure 2. STM32F74xxx USART_CR1 register usage
Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1
They couldn't put the new M1
bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.
So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.
Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.
$endgroup$
1
$begingroup$
Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
$endgroup$
– ajxs
43 mins ago
1
$begingroup$
@ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
$endgroup$
– SamGibson
34 mins ago
1
$begingroup$
That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
$endgroup$
– ajxs
31 mins ago
add a comment |
$begingroup$
Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?
In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.
For example, here is the USART_CR1
register of the old STM32F1xx family.
Figure 1. STM32F10xxx USART_CR1 register usage
Image source: STM32F10xxx family reference manual RM0008, section 27.6.4
That older USART (with only 2 word length options) needs only one M
bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".
As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0
, with M1
now in bit 28 (previously reserved in the STM32F1 register map, as you see above).
Figure 2. STM32F74xxx USART_CR1 register usage
Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1
They couldn't put the new M1
bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.
So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.
Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.
$endgroup$
Is this for legacy design reasons, such as a new feature was inserted into previously reserved space?
In this particular case (and in similar cases I've seen) yes, it's done to help keep backward compatibility with older devices and minimise any changes required to the (perhaps well-tested and qualified / certified) code already written for those older devices. New features and functionality (requiring new register bits for control & configuration) therefore have to use non-contiguous bits, if the adjacent bits to the original register bits are already used.
For example, here is the USART_CR1
register of the old STM32F1xx family.
Figure 1. STM32F10xxx USART_CR1 register usage
Image source: STM32F10xxx family reference manual RM0008, section 27.6.4
That older USART (with only 2 word length options) needs only one M
bit to configure the USART word length between the two options, and that is bit 12. Notice how bits 11 and 13 are also used, and therefore unavailable for future "expansion".
As you said, on the newer STM32F7 (and, for example, also the STM32F4) the USART now has 3 word length options (7, 8 and 9 bits) and so needs another configuration bit - bit 12 is M0
, with M1
now in bit 28 (previously reserved in the STM32F1 register map, as you see above).
Figure 2. STM32F74xxx USART_CR1 register usage
Image source: STM32F75xxx and STM32F74xxx family reference manual RM0385, section 31.8.1
They couldn't put the new M1
bit into register bits 11 or 13, without moving register bits already used for other functions, and so removing backwards compatibility with existing code (e.g. for the STM32F1) which used them.
So they have tried to keep some backwards compatibility, which leads to new register bits being added in unexpected places.
Maintaining register mapping for standalone UARTs, from the 8250 to the 16550, with new registers added elsewhere in the register map, was another example.
edited 10 mins ago
answered 50 mins ago
SamGibsonSamGibson
12k41840
12k41840
1
$begingroup$
Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
$endgroup$
– ajxs
43 mins ago
1
$begingroup$
@ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
$endgroup$
– SamGibson
34 mins ago
1
$begingroup$
That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
$endgroup$
– ajxs
31 mins ago
add a comment |
1
$begingroup$
Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
$endgroup$
– ajxs
43 mins ago
1
$begingroup$
@ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
$endgroup$
– SamGibson
34 mins ago
1
$begingroup$
That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
$endgroup$
– ajxs
31 mins ago
1
1
$begingroup$
Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
$endgroup$
– ajxs
43 mins ago
$begingroup$
Thanks so much for taking the time to point this out. Perhaps I should have checked the old F family reference material before I asked. I figured there might be more to the story though.
$endgroup$
– ajxs
43 mins ago
1
1
$begingroup$
@ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
$endgroup$
– SamGibson
34 mins ago
$begingroup$
@ajxs - You're welcome. I can only speak from my experiences (those old UARTS were another good example). It's always possible that someone else will have other relevant experiences, and they might be put-off from spending the time writing an answer, if the question already has an accepted answer. So you could always "unaccept" my answer, wait (say) a day for anyone else to answer from different perspectives, and see if you feel they answer the question any better than mine? If not, then you can always re-accept mine :-) I just don't want you to lose other potential answer perspectives.
$endgroup$
– SamGibson
34 mins ago
1
1
$begingroup$
That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
$endgroup$
– ajxs
31 mins ago
$begingroup$
That seems reasonable, I'll take your advice! Thank you for being so courteous as to make the suggestion. If no better answer has come by tomorrow I'll accept yours. Thanks again.
$endgroup$
– ajxs
31 mins ago
add a comment |
ajxs is a new contributor. Be nice, and check out our Code of Conduct.
ajxs is a new contributor. Be nice, and check out our Code of Conduct.
ajxs is a new contributor. Be nice, and check out our Code of Conduct.
ajxs is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Electrical Engineering Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f439226%2fwhy-are-logically-related-bit-fields-in-mcu-registers-often-in-separate-location%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown