This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Counter and printf

Hi all

I need a counter to to count up something

So I use follow code to do this work

unsigned long pdata counter[4]={0,0,0,0};

in the counting place,

counter[0]++;


when run finsih , I print the result

printf(%ld\n",counter[0]};


Maybe I have run to 1000 times ,so counter[0] value

will be to 1000 , but the printf result maybe very

large, like as 92343421;

why ?? how can I make sure to count up correctly??

Thanks a lot

best regards

Parents
  • "my chip is ASIC IP only"

    In that case, it is very likely that it handles PDATA in a special way - or may not support it at all.
    If the datasheet doesn't mention it, you need to ask the IP provider specifically about this.

    "I didn't know pdata too much"

    Don't try to use it until you really understand it, and how (if at all) it is implemented on your target.

    Get your code working first using DATA, IDATA, or XDATA.

    "There is no startup.a51 in my code , do I need to modify this file to use PDATA??"

    Yes!

Reply
  • "my chip is ASIC IP only"

    In that case, it is very likely that it handles PDATA in a special way - or may not support it at all.
    If the datasheet doesn't mention it, you need to ask the IP provider specifically about this.

    "I didn't know pdata too much"

    Don't try to use it until you really understand it, and how (if at all) it is implemented on your target.

    Get your code working first using DATA, IDATA, or XDATA.

    "There is no startup.a51 in my code , do I need to modify this file to use PDATA??"

    Yes!

Children
No data