Hey TJF,

You're right! I copied and pasted the wrong code. I used the P2 (P9_42) for 
the CAP pin and I got that results.

--------

#define P1 P9_14
#define P2 P9_42

int main(int argc, char **argv)
{
        pruIo *Io = pruio_new(PRUIO_DEF_ACTIVE, 0, 0, 0); //! create new 
driver structure

    if (Io->Errr) {
               printf("initialisation failed (%s)\n", Io->Errr);}

        if (pruio_cap_config(Io, P2, 2.)) { // configure input pin
          printf("failed setting input @P2 (%s)\n", Io->Errr);}

        float f1,d1;

         if (pruio_config(Io, 1, 2 , 0, 4)) {
                       printf("config failed (%s)\n", Io->Errr);}

        if (pruio_gpio_setValue(Io, P1, 0x8F)) {
                   printf("failed setting P1 (%s)\n", Io->Errr);}

    while (1)
                {
                                double a= Io->Adc->Value[1];

                        if (a < 25000  )
                         {
                                pruio_gpio_config(Io, P1, 0x8F);
                        }
                        else
                        {
                             pruio_gpio_config(Io, P1, 0xF);
                        }
                  if (pruio_cap_Value(Io, P2, &f1, &d1)) { //    get 
current input
                        printf("failed reading input @P2 (%s)\n", 
Io->Errr); }
                        printf("\r    Frequency: %10f , Duty: %10f     ", 
f1, d1); // info
                }
  pruio_destroy(Io);
        return 0;
} // end of main
-------

So, as I said, I think it is because of the printf() function as you 
refered once. How can I get the real frequency without using the printf() 
or an oscilloscope? And how can I get its minimum, average e maximum?

BR,
Luciano.

Sábado, 3 de Janeiro de 2015 4:48:13 UTC, TJF escreveu:
>
> Am Freitag, 2. Januar 2015 15:08:07 UTC+1 schrieb luciano...@gmail.com:
>>
>> Hey TJF,
>>
>> When possible, can you tell me something about my results when I got the 
>> sample rate using the CAP pin?
>>
>
> Hi Luciano,
>
> sorry, I can't, because I don't understand your code. The sequence
>
> #define P1 P9_14
> #define P2 P9_42
> int main(int argc, char **argv)
> {
>        pruIo *Io = pruio_new(PRUIO_DEF_ACTIVE, 0, 0, 0); //! create new 
> driver structure
>
>     if (Io->Errr) {
>               printf("initialisation failed (%s)\n", Io->Errr);}
>
>         if (pruio_cap_config(Io, P1, 2.)) { // configure input pin
>          printf("failed setting input @P_IN (%s)\n", Io->Errr);}
> ...
>
> should through an error since P1 (= P9_14) has no CAP capability. Why 
> don't you stop the program in case of that error? And where is the error 
> message in your output picture? Are you sure you did run that code?
>
> Also
>
> ...
>                   if (pruio_cap_Value(Io, P1, &f1, &d1)) { //    get 
> current input
>                        printf("failed reading input @P1 (%s)\n", 
> Io->Errr); }
>
>                   printf("\r    Frequency: %10f , Duty: %10f     ", f1, d1
> ); // info
> ...
>
> cannot work due to the same reason (missing CAP capability of P1) and 
> should through error messages. You should have used P2 in both cases.
>
> BR
>

-- 
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 beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to