Ok I figured it out lol. 

I was adding the actual byte-size offsets to pointers to longs, so it was 
being offset by 4x as much as I would have expected.

The program works fine otherwise.

On Monday, June 15, 2020 at 11:47:30 AM UTC-4, Fred Frey wrote:
>
> Hello
>
> I'm trying to write a simple program to test the IEP timers. Ideally I'd 
> like to be able to poll the timer and get an unsigned long value back, but 
> for this test, I followed what I read in this post:
>
>
> https://www.element14.com/community/community/designcenter/single-board-computers/next-genbeaglebone/blog/2019/08/12/beaglebone-pru-timer-functionality
>
> With a few minor changes -- I provide a different GPIO pin, made it loop 
> forever, and made the frequency for the square wave ~2kHz.
>
> I also have a different way of configuring the IEP/INTC. I manually 
> defined the addresses:
>
> #define IEP_HOME                        ((volatile unsigned long*)0x2E000)
> #define TMR_GLOBAL_CFG         (*(IEP_HOME+0x00))
> #define TMR_GLOBAL_STATUS   (*(IEP_HOME+0x04))
> #define TMR_COMPEN                 (*(IEP_HOME+0x08))
> #define TMR_COUNT                    (*(IEP_HOME+0x0C))
> #define TMR_CMP0                       (*(IEP_HOME+0x48))
> #define TMR_CMP_STATUS         (*(IEP_HOME+0x44))
> #define TMR_CMP_CFG               (*(IEP_HOME+0x40))
>
> ...
>
> #define INTC_HOME           ((volatile unsigned long*)(0x20000))
>
> #define INTC_SECR0          (*(INTC_HOME+0x280))
> #define INTC_SECR1          (*(INTC_HOME+0x284))
>
>
> And I configured them like so:
>
>     TMR_GLOBAL_CFG &= 0xfffffffe; // disable timer
>
>     TMR_COUNT = 0x0; // reset timer
>
>     TMR_CMP_STATUS = 0xff; // clear compare status
>
>     TMR_CMP0 = 100000; // 0.0025 SEC @ 200 MHz
>
>     TMR_COMPEN &= 0xff000000;  // set compensation to 0
>
>     TMR_CMP_CFG &= 0x03; // enable cmp0 and reset on event
>
>     INTC_SECR0 = 0xffffffff;
>     INTC_SECR1 = 0xffffffff;
>
>     TMR_GLOBAL_CFG = 0x11; // enable counter
>
>
> When I read from TMR_COUNT, it's always 0, and the interrupt never fires. 
> What am I missing?
>
> Thanks,
> Fred
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/a43757ec-947e-4938-a04e-4e9cc4b9a520o%40googlegroups.com.

Reply via email to