Programming Examples
r0.l = lo(isr_core_timer);
r0.h = hi(isr_core_timer);
[p1 + EVT6 - IMASK] = r0;
r0 = [p1];
bitset(r0, bitpos(EVT_IVTMR));
[p1] = r0;
/* Prescaler = 50, Period = 10,000,000, First Period = 20,000,000
*/
p1.l = lo(TCNTL);
p1.h = hi(TCNTL);
r0 = 50 (z);
[p1 + TSCALE - TCNTL] = r0;
r0.l = lo(10000000);
r0.h = hi(10000000);
[p1 + TPERIOD - TCNTL] = r0;
r0 <<= 1;
[p1 + TCOUNT - TCNTL] = r0;
/* R6 counts interrupts */
r6 = 0 (z);
/* start in auto-reload mode */
r0 = TAUTORLD | TMPWR | TMREN (z);
[p1] = r0;
_main.forever:
jump _main.forever;
_main.end:
/* interrupt service routine simple increments R6 */
isr_core_timer:
[--sp] = astat;
r6+= 1;
astat = [sp++];
rti;
isr_core_timer.end:
11-8
ADSP-BF50x Blackfin Processor Hardware Reference
Need help?
Do you have a question about the ADSP-BF506F and is the answer not in the manual?