[sdiy] DSPIC computed branch and include help
Vinicius Brazil
brazil.v at gmail.com
Mon Feb 22 18:39:06 CET 2016
Note:
The dsPIC I use most is the dsPIC33FJ128GP802.
Vinicius
On Mon, Feb 22, 2016 at 2:37 PM, Vinicius Brazil <brazil.v at gmail.com> wrote:
> HI Ritchie,
> I just write in assembly and use much (in all my firmware) BRA Wx
> statement.
> It works perfectly.
> An example of code:
>
> bra W0
> bra LED_SawPositive
> bra LED_SawNegative
> bra LED_SQUARE
> bra LED_Triangle
> bra LED_SINE
> bra LED_SquaredSine
> bra LED_Pulse
> bra LED_Noise
> ;---------------------------------
> LED_SawPositive:
> ......
> bra TSEnd
> ;---------------------------------
> LED_SawNegative:
> ....
> ....
> ....
>
> Usually I build everything in one file, but have written a program where
> there was an include code.
> I put the "include" just after the start, within the program area.
>
> regards,
> Vinicius
>
>
>
> On Mon, Feb 22, 2016 at 2:16 PM, Richie Burnett <
> rburnett at richieburnett.co.uk> wrote:
>
>> Has anyone else here using Microchips DSPIC tried to implement a computed
>> branch using the "BRA w0" instruction ?
>>
>> No matter what I do, I can't get it to work as explained in the
>> programmers reference guide description of the BRA instruction. It says
>> that it should jump to the address (PC+2) + (2*w0) (which makes sense
>> because the program counter would already be ready to pre-fetch the next
>> instruction, and instructions are aligned on 2-word boundaries,) but
>> instead it seems to jump to (PC+2) + w0 but ignores the LSB of w0,
>> (otherwise it would produce a misaligned odd program counter address!)
>> I've checked and checked this and I don't see what I'm doing wrong, and
>> can't find an errata sheet that mentions this problem. Chip being used is
>> dsPIC33FJ128GP804.
>>
>> Also can someone tell me the correct way to include additional assembly
>> source files *.s in MPLAB. I just put
>>
>> .include "filters.s"
>> .include "maths.s"
>> .include "comms.s"
>>
>> etc... at the end of main.s but this seems to have completely broken
>> MPLAB 8.92. It assembles fine, programs fine and runs fine, but goes crazy
>> when hitting a breakpoint or single-stepping inside any of the included
>> source files. I'm used to the included file just popping open and the
>> program counter arrow switching between whichever source window it needs to
>> be in as different routines are called. I'm actually getting the program
>> counter arrow moving to lines in the source file that just have comments on
>> them before the actual code starts when it should switch to one of the
>> included source contents. Also FWIW the addresses in the "Disassembly
>> Listing" window are all garbled too! It only does this when I include
>> additional source files, so I must be doing something wrong!?!?
>>
>> I'd like to divide the source code up into relevant sections in separate
>> files to make a big project easier to follow, so really want to get this
>> done right.
>>
>> Thanks in advance for any suggestions !
>>
>> -Richie,
>> _______________________________________________
>> Synth-diy mailing list
>> Synth-diy at dropmix.xs4all.nl
>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20160222/bdf723e6/attachment.htm>
More information about the Synth-diy
mailing list