CodeVision AVR i assembler (?)

  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?

Reply to
Q
Loading thread data ...

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. :)

Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.