You are here

Trouble with INDEX instruction | Cypress Semiconductor

Trouble with INDEX instruction

Summary: 1 Reply, Latest post by fnoguez on 22 Apr 2016 10:00 AM PDT
Verified Answers: 0
Last post
Log in to post new comments.
fnoguez's picture
5 posts

Hello everyone.

I´m having troubles accessing a table with INDEX instruction.

The device i´m using is CY8C29466.

The table is 128 entries long and is feeding a 16 bit timer.

Previously i had a precomputed table divided in MSB and LSB working just fine. Then i decided  trying a table computed at compile  time,

like this:

    mov    A,[RecByte]
    asl    A
    push    A
    index    Number
    mov    [period],A
    pop    A
    index    (Number+1)
    ;period+1 already in A
    move    X,[period]
    lcall    Timer16_1_WritePeriod


DW (Main_Freq/256)/x
DW (Main_Freq/256)/x
DW (Main_Freq/256)/x
DW (Main_Freq/256)/x
DW (Main_Freq/256)/x     ;128 times

The code above is working partially, when i reach a value of 93 or 0x5D in the table it jumps to nowhere and never get back!

I have some cuestions on this:

1. What is wrong in the code above, of course.

2. Why in the life i need to put "asl   A"  to acces the table? If i don´t use ASL i get messed values.

Thanks in advance


fnoguez's picture
5 posts

Hello again

I´m really sorry!!

I´ve found that a very fast interrupt was the reason the  program never got back.

The table is reading correctly

Should I remove the thread?

Thanks a lot


Log in to post new comments.