CodeVision AVR i assembler (?)

Nov 10, 2004 1 Replies
  1. co zrobic, zeby assembler uzywany w cvavr widzial stale umieszczone w plikach "megaxxx.h"?

assembler (w cvavr) wywala mi blad jak dam: #asm("out SPMCR, r27"); i musze uzywac takiej postaci: #asm("out 0x37, r27");


  1. jak w ogole dolaczyc do projektu pliki napisane w "czystym" assemblerze?


  1. w roznych przykladach widze, ze czesto uzywane sa zamiennie instrukcje "sts" i "out"; jaka jest podstawowa roznica miedzy tymi instrukcjami?



Instrukcja sts zapisuje zawartosc rejestru do dowolnej komorki pamieci (w jej kodzie podaje sie 16-bitowy adres komorki w RAMie), natomiast instrukcja out mozna zapisywac tylko dolna przestrzen adresowa rejestrow wejscia-wyjscia (czy jak tam zwal) czyli obszar adresow I/O 0..63. Instrukcja sts trwa 2 cykle procesora i jest 2-slowowa (zajmuje 4 oktety w pamieci programu) bo w drugim slowie zawiera 16-bitowy adres. Instrukcja out trwa 1 cykl i jest 1-slowowa (adres 6-bitowy zawarty w kodzie instrukcji) i dlatego lepiej ja uzywac kiedy mozna, bo zajmuje mniej miejsca w pamieci i jest szybsza. I na koniec: najprostsze AVRki nie maja instrukcji sts, a w tych bardziej rozbudowanych jest tyle rejestrow, ze nie mieszcza sie w obszarze dzialania instrukcji out i trzeba uzywac sts.

Mam nadzieje, ze nie sciemnilem zbyt mocno. :)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required