Technical discussions about the TI C28x DSPs (including the C2810, C2811, C2812, F2801, F2806, F2808, F2810,, F2811, F2812, R2811 and R2812).
Hi, I´m working on the TI TMS320F2812 DSP. My program is activated by external interrupt xint2 and basically receives 2 variables from SCI, uses the ADC to adquire 3 DC voltages from potentiometers, and uses those 5 variables to make some calculations using IQmath and deliver the results through the digital I/O. Due to noise present at the potentiometers, there is a variation in the digital values of the voltages, which I've tried reduce with iir filtering using the sprc082 library. Before working on the actual proyect, I've modified one of TI's examples (Gpio_toggle) to adquire one DC voltage from ADC and filter it. Reading all .pdf's and tutorials I've designed the filter, calculated the coefficients, added the corresponding files to the proyect and after some minor debugging it ran succesfully. But when I've implemented it on the main proyect, it didn't work. It compiles succesfully, with no errors, but when running falls on the illegal_isr routine and it halts there. Using Mixed source and ASM mode to look where the problem is and running step by step I've discovered that after the instruction: iir.init(&iir); the proyect that works jumps to _IIR5BIQ32_init in the iir32.asm file (Dissasembly), goes through the code and then return to the Gpiotoggle.c, which is ok. But the other one just jumps under .word 0xA1FF label on the Dissasembly, executes the following lines which doesn't have anything to do with my program and continue going on until it falls on the Illegal_Isr routine. The long jump seems to be the problem, but I've written the same code on both programs and there are no files missing. Any help or comment would be greatly appreciated, as I don't know what else check out! You can post a message or access and search the archives of this group on DSPRelated.com: http://www.dsprelated.com/groups/c28x/1.php _____________________________________