Tema: Re: Nesuprantu AtTiny45 aprasymo...
Autorius: saimhe
Data: 2014-09-23 00:30:29
> paemiau ziuret nu ir tarkim "PORTB = (1<<PB4)" zinau kad left shift'as, o bet nafik ten reik left shiftint, kodel neuztenka 
> tiesiog priskirt vieneta i PB4... Nu datascheete nera parasyta manau.

  Datasheet'e bus asembleris, bet net tokiame oficialiame šaltinyje
tinginiai prikrovė shift'ų.
  Likimo ironija: AVR'uose kojų maskatavimas kaip tik labai paprastas --

CBI PORTB,4
SBI PORTB,4

   Čia tik konkretaus C kompiliatoriaus autoriai užsimanė viską
padaryti labai pagal kalbos standartą. Standarte siauriausias tipas
yra 8 bitų, atitinka registrą. Reiškia, ir makrosai turės dirbti su
visu registru iš karto -- vietoje SETB jie darys

IN  r0,PORTB
<and/or/xor su r0, idant keistųsi tik reikiami bitai>
OUT PORTB,r0

   O jei kompiliatorius turėtų kokį nors tipą "bit" darbui su AVR
pavienėmis kojomis, būsenos registro bitais ir panašiais dalykais,
tai priskyrimas tokiam kintamajam pavirstų į vienintelę komandą.


   Man kadaise po pirmosios kalbos, Turbo Pascal, visai į temą buvo
asembleris. Tačiau ne bet koks, o tas integruotas, kuriuo .pas
faile gali funkcijos gabalus ar visą funkciją realizuoti. Paskui
įsidrąsinau norimas funkcijas daryti su TASM ir į paskalį
importuoti jau gatavus .obj failus. O ten vos pora žingsnių iki
nepriklausomų .com failų, pasigilinus -- ir iki .exe. Net gaila
būdavo, kad DOS jau paskutines dienas skaičiuoja.

-- 
  saimhe