AVR - programovani

Tom Mazouch mazouch
Středa Březen 17 14:26:23 CET 2004


Locker Martin wrote:
> 
> Dobry den,
> 
> zacinam s AVR a mam zatim problemy s RISC architekturou.
> 
> Konkretne jak nastavit, resp. shodit pin na vystupni brane dle cisla
> v registru (0-7).

Nad timhle jsem se taky vyzuril a vykrikl hodne urazek na adresu AVR
:-(.

> 
> Moje reseni:
> 
> 1.      Tabulka v pameti kodu (1, 2, 4, 8, 16, 32, 64, 128)
> 2.      do Z zacatek tabulky + pin
> 3.      vyzvednout z tabulky do R0 ???

Funkci na prevod "cislo bitu -> nahozeny bit" jsem resil:
ldi R1,1
sbrc R0,2
swap R1
sbrc R0,1
lsl R1
sbrc R0,1
lsl R1
sbrc R0,0
lsl R1
Je s tim IMHO mensi onanie nez s tabulkou v pameti. Delka 9W, delka
tabulky 4W, to by se obsluha tabulky musela vejit do 5W (coz se mozna
vejde, ale...)

> 4.      precist aktualni stav vystupni brany
> 5.      sestavit novou hodnotu (OR pro nastaveni bitu, NOT AND pro
> shozeni)

SBR a CBR (jen upozornuju na to druhy :-)

> 6.      zapis na port
> 
> Prechazim z x51 a prijde mi toto reseni velmi neohrabane.

Kdyz jsem se nad tim pak ale zamyslel, tak na MCS51 to neni az tak moc
lepsi. Brany sice lze adresovat bitove, ale jen primo. IMHO jedina
vyhoda MCS51 je v tom, ze dokaze AND/OR/XOR Px,ACC.

  TomM





Další informace o konferenci Hw-list