AVR funkce

huda hudaklan@volny.cz
Středa Srpen 19 07:53:20 CEST 2009


Dekuji,

>> __attribute__((noinline)) void cekej(unsigned int cas)

to je presne ono.

Jeste mam jeden problem.
Pouzivam ATXmega128A1 a PORTD jsem si namapoval
jako virtualni VPORT1, abych mohl pouzivat instrukce CBI a SBI,
ktere umi pracovat s hodnotou registru maximalne 32.

A ted k problemu.
Mam nadefinovano ovladani jednotlivych pinu portu takto:
#define SDA1      2
#define SDA1_ON   sbi(VPORT1.OUT,SDA1)
#define SDA1_OFF  cbi(VPORT1.OUT,SDA1)

V jedne casti programu tyto piny inicializuji a prekladac to prelozi 
spravne.
  SDA1_OFF;   -->   cbi 0x15, 2 ;
v jine casti to prelozi takto: (Y je nastaveno spravne na 0x0014)
  SDA1_OFF;   -->   in r24, 0x15 ;
                                 andi r24, 0xFB ;
                                 std Y+1, r24 ;
Obe casti jsou v jednom modulu. Toto dela i u jinych, takto definovanych 
pinu.

Nevim uz co s tim. Jedna se o cast, kde bych ocenil kratke instrukce,
ale jeste to neni tak kriticke, aby to muselo byt psane v asembleru.

Dekuji za kazdy napad.
HUDA





Další informace o konferenci Hw-list