You need to determine which you are using; PM or MPASM assembler.
I doubt they use the exact same commands/syntax. I suspect you are using PM. MPASM is the preferred assembler today.
Robert
You need to determine which you are using; PM or MPASM assembler.
I doubt they use the exact same commands/syntax. I suspect you are using PM. MPASM is the preferred assembler today.
Robert
Should be it. ww1.microchip.com/downloads/en/devicedoc/31029a.pdf
Last edited by Archangel; - 26th October 2013 at 23:19.
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
PIC is 18F46K22 @ 64MHz...
Compiler is MPASM...
Basically, i'm looking into an asm piece of coding to create correct timings for the WS2812B LEDs...
When i used PBP to spit out the wave form from an arry the IF statement killed the timings. I appears to take ~30 cycles to run one command...
The bit that i'm after is as follows...
First line being the PBP line and the second line being the resultant assembler.Code:00134 IF BSPTR < (NOOFWS2812 * 3 * 8) THEN CMPGE?WCL _BSPTR, 0F0h, L00007
The problem is I can not find any reference to what "CMPGE?WCL" is?
I think, it's some sort of ALU compare with condition jump... but why is it taking so darn long on a high end MCU...
never mind... i just realised some of these commands are actually macros... thats why i can't find them...
ok, nope i'm lost again...
The macro for CMPGT?WCL is...
So what is MOVE?WW, MOVE?CB and MOVE?CA oh and L?CALL and BIT?GOTO... Like... seriously!Code:CMPGT?WCL macro Win, Cin, Label if ((Cin) < 0) L?GOTO Label else if ((Cin) < 0ffffh) MOVE?WW Win, R0 MOVE?CB (Cin) >> 8, R1 + 1 MOVE?CA low (Cin) L?CALL CMPGT BIT?GOTO 0, STATUS, Z, Label endif endif endm
Total guess; math calculations in IF?
Robert
Hi,
They are more macros, move word to word, move constant to byte and so on. You should be able to find the actual code that those macros consists of at the same place you found the code for "top level" CMPGT?WCL macro.o what is MOVE?WW, MOVE?CB and MOVE?CA oh and L?CALL and BIT?GOTO... Like... seriously!
/Henrik.
Bookmarks