<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Nebo to nechat na překladači:-)<br>
    Tyhle problémy jsem řešil naposled tak před 20 lety, když jsem
    programoval v asm. Pro každé AVR je nějaký H soubor, tam jsou
    definice registrů, názvy zpravidla odpovídají těm v DS, včetně
    16bitových jako celek. Jejich půlky jsem vlastně asi nikdy nepoužil.<br>
    <br>
    Takže já prostě napíšu<br>
    TCA0.SINGLE.PER = F_CPUkor/1000;<br>
    a counter TCA0 v single módu má periodu 1 kHz<br>
    Jelikož F_CPUkor je něco kolem 20 milionů, tak do toho registru
    vložím něco kolem 20 tisíc.<br>
    <br>
    Tohle je teda pro ATtiny816, ale na ATmega88 a podobnejch jsem to
    dělal taky tak.<br>
    <br>
    PH<br>
    <br>
    <div class="moz-cite-prefix">Dne 19.12.2023 v 22:21 Petr Labaj
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:1e68044f-ce26-552b-6093-7a2062c272aa@volny.cz">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      A co se podívat do zdrojáků nějakých knihoven, které se reálně
      používají?<br>
      <br>
      PL<br>
      <br>
      *********************<br>
      <br>
      <div class="moz-cite-prefix">Dne 19.12.2023 v 21:48 Petr Stehlik
        napsal(a):<br>
      </div>
      <blockquote type="cite"
        cite="mid:cc7d73c5-d035-4c1d-8a55-ec2f35266a16@atlas.cz">
        <meta http-equiv="Content-Type"
          content="text/html; charset=UTF-8">
        <p>Hmm</p>
        <p>U TC1 v DS k 324PB se odvolávají na ten popis co jsem uvedl
          (8.6 Accessing 16-bit Registers) a o pár řádku píšou <br>
        </p>
        <p>Accessing the low byte triggers the 16-bit read or write
          operation: When the low byte of a 16-bit register is<br>
          written by the CPU, the high byte that is currently stored in
          TEMP and the low byte being written are both<br>
          copied into the 16-bit register in the same clock cycle. When
          the low byte of a 16-bit register is read by the CPU, the high
          byte of the 16-bit register is copied into the TEMP register
          in the same clock cycle as<br>
          the low byte is read, and must be read subsequently.<br>
        </p>
        <p>Tak co platí?</p>
        <p>Díky Petr<br>
        </p>
        <div class="moz-cite-prefix">Dne 19.12.2023 v 21:28 Petr Stehlik
          napsal(a):<br>
        </div>
        <blockquote type="cite"
          cite="mid:c3176d37-ef12-4bc2-9c12-146c53302413@atlas.cz">
          <meta http-equiv="content-type"
            content="text/html; charset=UTF-8">
          <p>Zdravím</p>
          <p>V DS u ATmega 328 a jiných je napsáno:</p>
          <p>For a write operation, the <b>high</b> byte of the 16-bit
            register must be written before the<b> low</b> byte. The
            high<br>
            byte is then written into the temporary register.</p>
          <p>V DS u ATmega 324PB a jiných je napsáno:</p>
          <p>For a write operation, the<b> low</b> byte of the 16-bit
            register must be written before the <b>high</b> byte. The
            low byte<br>
            is then written into the temporary register.</p>
          <p> Nemám tu 324 fyzicky tak to nemohu ověřit,  je to chyba v
            DS nebo je to nějaká změna ve struktuře AVR?</p>
        </blockquote>
      </blockquote>
    </blockquote>
  </body>
</html>