<html>
  <head>
    <meta content="text/html; charset=ISO-8859-2"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font face="Helvetica, Arial, sans-serif">Mam registr: </font>GPIOF->ODR<br>
    Ted ziskam jeho adresu: &GPIOF->ODR<br>
    Adresa = ukazatel je podle typu promenne, tedy zde na uint32_t.<br>
    Pro prekladac zmenim typ - ukazatel na byte - aby vedel, jake
    instrukce pouzit: (uint8_t*)&GPIOF->ODR<br>
    Dale napisu obecnejsi - snad i pochopitelnejsi - zapis pro pristup k
    jednotlivym bytum: ((uint8_t*)&GPIOF->ODR)[0] = 0x12;<br>
    <br>
    Aby se s tim pracovalo jednoduseji, tak z toho muzeme udelat makro:<br>
    #define PORT_BYTE(port) ((volatile uint8_t*)&(port))<br>
    Pak muzu psat jednodussi zapis:<br>
    PORT_BYTE(GPIOF->ODR)[0] = 0x12;<br>
    A muzu to vyuzit take pro dalsi porty bez nutnosti definovat si nove
    a nove definice...<br>
    Makro se da upravit tak, aby cislo bytu bylo take jako parametr:<br>
    #define PORT_BYTE(port,byte) ((volatile uint8_t*)&(port))[byte]<br>
    PORT_BYTE(GPIOF->ODR,0) = 0x12;<br>
    <br>
    Hynek Sladky<br>
    <font face="Helvetica, Arial, sans-serif"><br>
      <br>
    </font>
    <div class="moz-cite-prefix">Dne 14.2.2017 10:23, Fanda Kopriva
      napsal(a):<br>
    </div>
    <blockquote
      cite="mid:83143f24-32c9-6cb2-9b9d-28c91bf7c730@elektronikavyvoj.cz"
      type="cite">
      <br>
      *(volatile uint8_t *)&GPIOF->ODR = 0x12;
      <br>
      diky za nakopnuti
      <br>
      Ale tyto konstrukce jsou pro mne bohuzel neprehledne a zavani mi
      temnou magii.:-)
      <br>
      Stareho psa novym ...atd.
      <br>
      nakonec jsem si dodefinoval registry s bytovym pristupem a funguje
      to.
      <br>
      <br>
      sfr unsigned char volatile GPIOF_ODRL absolute  0x40021414;
      <br>
      sfr unsigned char volatile GPIOF_ODRH absolute  0x40021415;
      <br>
         GPIOF_ODRH = 0x12
      <br>
      <br>
         fanda
      <br>
    </blockquote>
    <br>
  </body>
</html>