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