[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