[elektro] AVR GCC kezdő kérdés
Moczik Gabor
pm_levlista at progzmaster.hu
Mon Jan 31 11:41:46 CET 2011
Norbert Berberovics wrote:
> Köszi a gyors reagálást.
> Most már tudom, miért nem akartam C-re átálni. : o )
> Ami asm-ben egyértelmű miért nem csináltak rá C-ben utasítást.
>
> mondjuk egy ilyet:
>
> a= a<< (PINC.4) //és ez szépen beléptetné a port bitjeit egy változóba
>
> És ennyi.......
ASM-ben belépteti?
Nem. Ott is ciklusba kell szervezni, csak ezeket a részeket nem idézted
be az ASM kódba, csak azt a 3 részutasítást.
C-ben is ciklusba kell szervezni. Azért nincs rá utasítás, mert a
lehetőségek száma nagy, balról jobbra vagy fordítva léptessen, az összes
bitet vagy csak valamennyit, az elejétől vagy csak valahanyadiktól, stb...
for(i=0, inbuf=0; i<=7; i++) {
inbuf|=SDI;
inbuf<<=1;
}
Ezt vagy hasonlót ha lefordítod, látható lesz, hogy fog használni
valamilyen CPU-specifikus shift utasítást.
Ugyanígy, ha leírod hogy x/16, rá fog jönni hogy 4 bittel jobbra kell
shiftelni, nem fogja osztásra fordítani.
--
((( Móczik Gábor )))--((( e|mail: pm-01 |@| progzmaster |.| hu )))
((( S.k.y.p.e.: moczik )))
More information about the Elektro
mailing list