[elektro] MPLAB ASM30

Tóth Péter tope1 at freemail.hu
Fri Aug 8 10:08:24 CEST 2008


Beraktam a

#define		LED123	PORTA,#5

-höz hasonló definiálást, de nem megy :(
Próbáltam kis és nagy "S"-sel, de nincs különbség.
Ezt írja:
24HJ.S:145: Error: Too few operands ('bset LED').

Valami más lesz a probléma...
Ha elküldeném a projektet megnéznéd nekem? Hátha valami egyszerű dolgot 
szúrok csak el...
A hétvégén beültetném a panelt és élesben játszanék már vele.

ToPe


hg12345 írta:
> Ami biztos alapon beleirtam az egyetlen ASM rutinomba és elsőre 
> fordult, és csinálta is:
>
> #define		LED123	PORTA,#5
> #define		DNOP	bra	$+2
>
> 		
> 		.global	_SyncronChangePort
>
>
> 		.text
> ;//extern	BOOL SyncronChangePort(void * TMRx, void * PRx, void 
> *LATx, unsigned int MaskLat, unsigned int NewValue);
>
> /*
> ;//	w0 	*TMRx
> ;//	w1	*PRx
> ;//	w2	*LATx
> ;//	w3	Mask
> ;//	w4	New
> ;//	w5
> ;//	w6
> ;//	w7
> */
>
>
>
> _SyncronChangePort:
> 			bclr	123,#6
> 			bset	LED123
>
> 			xor.w	w4,[w2--],w6	
> 	;//változás képzése   a pointer a PORT-ra mutat
> 			and.w	w6,w3,w6		
> 	;//csak a megfelelő bitek megőrzése	
>
> 			com.w	w3,w5			
> 	;//ami biztos 
> 			and.w	w5,[--w2],[w2++]	;//a 
> állításokkal kapcsolatos direction kimentnek állítása , pointer PORT-ra 
> mutat	
>
> 			dec2.w	[w1],w5
> 			sub.w	w5,[w0],w5
> 			repeat 	w5
> 			 nop
> 			xor.w	w6,[++w2],[w2]	
> 	;//Syncron átváltás és elötte a pointer beállítása
> 			dec.w	[w0],w0
> 			return
>   



More information about the Elektro mailing list