Loading...
Pages: [1]   Go Down
Author Topic: codigo funcion  (Read 221 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

buenas a todos smiley

no consigo encontrar el codigo de la funcion propia de arduino "pulsein" para ver que es lo que hace exactamente,

estoy trabajando en linux y he encontrado las librerias que estan en usr/share/arduino/libraries

pero las funciones por defecto de arduino no consigo  encontrarlas

alguien me podria informar?

gracias  smiley-lol
Logged

Spain
Offline Offline
God Member
*****
Karma: 16
Posts: 832
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es esto lo que buscas?
Code:
unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout)
{
// cache the port and bit of the pin in order to speed up the
// pulse width measuring loop and achieve finer resolution.  calling
// digitalRead() instead yields much coarser resolution.
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
uint8_t stateMask = (state ? bit : 0);
unsigned long width = 0; // keep initialization out of time critical area

// convert the timeout from microseconds to a number of times through
// the initial loop; it takes 16 clock cycles per iteration.
unsigned long numloops = 0;
unsigned long maxloops = microsecondsToClockCycles(timeout) / 16;

// wait for any previous pulse to end
while ((*portInputRegister(port) & bit) == stateMask)
if (numloops++ == maxloops)
return 0;

// wait for the pulse to start
while ((*portInputRegister(port) & bit) != stateMask)
if (numloops++ == maxloops)
return 0;

// wait for the pulse to stop
while ((*portInputRegister(port) & bit) == stateMask) {
if (numloops++ == maxloops)
return 0;
width++;
}

// convert the reading to microseconds. The loop has been determined
// to be 20 clock cycles long and have about 16 clocks between the edge
// and the start of the loop. There will be some error introduced by
// the interrupt handlers.
return clockCyclesToMicroseconds(width * 21 + 16);
}


El source para pulseIn() debes de encontrarlo en wiring_pulse.c
Logged

CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

En diseño te tienen que gustar más las preguntas que las respuestas [.Jray.]


Si estas empezando:
1- Comienza a usar Arduino
2- Guías de iniciación a Arduino
3- Ejemplos
4- Referencia del Lenguaje
5- Conceptos básicos
6- Guia de usuario de arduino

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

perfecto, muchas gracias, era lo que buscaba  smiley-wink
Logged

Pages: [1]   Go Up
Print
 
Jump to: