C ++ ein Element eines Einzel-Byte-Arrays (flüchtig) ist nicht atomar! WARUM? (Außerdem: Wie erzwinge ich Atomizität in

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: C ++ ein Element eines Einzel-Byte-Arrays (flüchtig) ist nicht atomar! WARUM? (Außerdem: Wie erzwinge ich Atomizität in

by Anonymous » 19 Aug 2025, 20:42

Ich habe gerade Tage, buchstäblich, ~ 25 Stunden Arbeit verloren, weil ich versuchte, meinen Code über etwas Einfaches zu debuggen, das ich beim Herstellen eines Feuerscheibe Hexacopter BattleBot nicht kannte (siehe hier und auf meiner persönlichen Website hier). Kein atomarer Betrieb und erfordert atomare Zugangswächter (nämlich Unterbrechungen ausschalten). Warum ist das ??? Welche C -Techniken sind auch alle C -Techniken, um den Atomzugriff auf Variablen auf einem Atmel AVR -Mikrocontroller zu gewährleisten?// Global variables:
const uint8_t NUM_INPUT_PORTS = 3;
volatile uint8_t numElementsInBuf[NUM_INPUT_PORTS];

ISR(PCINT0_vect) // External pin change interrupt service routine on input port 0
{
// Do stuff here
for (uint8_t i=0; i

Top