PIC24HJ64GP502: Unterschied zwischen den Versionen

Aus Wiki_2020
Wezi (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „ while(1) { asm("bclr, LATB #14"); asm("bset, LATB #14"); }“
 
Wezi (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Anpassung des internen Oszillators auf exakt 8MHz (4MHz Istructioncycle) durch Register OSCTUNE
<syntaxhighlight lang="MPASM" line start="100"  enclose="div">
OSCTUN = 15; //  16 = 255ns Tinstr
              //  15 = 250ns Tinstr = 4MHz
</syntaxhighlight >
Testroutine in main()
<syntaxhighlight lang="MPASM" line start="100"  enclose="div">


while(1)
while(1)
     {    
     {            
      asm("bset, LATB #14");
       asm("bclr, LATB #14");
       asm("bclr, LATB #14");
       asm("bset, LATB #14");
       asm("bset, LATB #14");
      asm("bclr, LATB #14");
     }
     }
</syntaxhighlight >
ergibt in Assembler:
<syntaxhighlight lang="MPASM" line start="100"  enclose="div">
773:                while(1)
774:                  {           
775:                    asm("bset, LATB #14");
000882  A8C2CD    BSET 0x2CD, #6
776:                    asm("bclr, LATB #14");
000884  A9C2CD    BCLR 0x2CD, #6
777:                    asm("bset, LATB #14");
000886  A8C2CD    BSET 0x2CD, #6
778:                    asm("bclr, LATB #14");
000888  A9C2CD    BCLR 0x2CD, #6
779:                  }
00088A  37FFFB    BRA 0x882
</syntaxhighlight >
bei korrekter 4MHz Instructiontakt
[[Datei:MCU_Taktung.png]]

Aktuelle Version vom 23. Oktober 2022, 09:50 Uhr

Anpassung des internen Oszillators auf exakt 8MHz (4MHz Istructioncycle) durch Register OSCTUNE

<syntaxhighlight lang="MPASM" line start="100" enclose="div">

OSCTUN = 15; //   16 = 255ns Tinstr 
             //   15 = 250ns Tinstr = 4MHz

</syntaxhighlight >

Testroutine in main()

<syntaxhighlight lang="MPASM" line start="100" enclose="div">

while(1)

   {             
     asm("bset, LATB #14");
     asm("bclr, LATB #14");
     asm("bset, LATB #14");
     asm("bclr, LATB #14");
   }

</syntaxhighlight >

ergibt in Assembler:

<syntaxhighlight lang="MPASM" line start="100"  enclose="div">
773:                 while(1)
774:                   {             
775:                     asm("bset, LATB #14");
000882  A8C2CD     BSET 0x2CD, #6
776:                     asm("bclr, LATB #14");
000884  A9C2CD     BCLR 0x2CD, #6
777:                     asm("bset, LATB #14");
000886  A8C2CD     BSET 0x2CD, #6
778:                     asm("bclr, LATB #14");
000888  A9C2CD     BCLR 0x2CD, #6
779:                   }
00088A  37FFFB     BRA 0x882
</syntaxhighlight >

bei korrekter 4MHz Instructiontakt