Go Down

Topic: info velocità di calcolo arduino per mappatura onda (Read 1 time) previous topic - next topic

stefa24

ciao
ma è possibile il conteggio alla rovescia di millis()

stefano

Code: [Select]

...
void setup()
{
    pinMode(PIN1, INPUT); digitalWrite(PIN1, HIGH);  // add more attachInterrupt code as required
  PCintPort::attachInterrupt(PIN1, sensore1, FALLING); 
    pinMode(PIN2, INPUT); digitalWrite(PIN2, HIGH);  // add more attachInterrupt code as required
  PCintPort::attachInterrupt(PIN2, sensore1, FALLING);
    pinMode(PIN3, INPUT); digitalWrite(PIN3, HIGH);  // add more attachInterrupt code as required
...
...
void loop()
{
  if (statosensore1==LOW)
{
  Serial.println(count[0]);
  Serial.println(tempo[0]);
  statosensore1=HIGH;
}
if (statosensore2==LOW)
{
  Serial.println(count[1]);
Serial.println(tempo[1]); 
  statosensore2=HIGH;
}
...

//---------------------------funzioni
void sensore1()
{
  statosensore1=LOW;
count[0]++;
tempo[0]=millis();
}
void sensore2()
{
  statosensore2=LOW;
  count[1]++;
  tempo[1]=millis();
}
void sensore3()
{
  statosensore3=LOW;
  count[2]++;
  tempo[2]=millis();
}
...


output collegato sul pin 2
Code: [Select]

1
11843
2
17006
3
23538


output collegato sul pin  3
Code: [Select]

4
-32104
5
-32089
6
-22914
7
-16458
8
-11318


output ricollegato sul pin 2
Code: [Select]

9
-9628
10
-9615
11
-3641


https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew
arduino UNO rev 3
ide 1.6.0

leo72

Ma tu nel setup hai assegnato la stessa funzione sensore1 a tutte e 6 le routine di gestione degli interrupt
Quote
pinMode(PIN1, INPUT); digitalWrite(PIN1, HIGH);  // add more attachInterrupt code as required
  PCintPort::attachInterrupt(PIN1, sensore1, FALLING); 
    pinMode(PIN2, INPUT); digitalWrite(PIN2, HIGH);  // add more attachInterrupt code as required
  PCintPort::attachInterrupt(PIN2, sensore1, FALLING);
ecc...


PS:
millis conta solo in avanti. O modifichi il contatore tu oppure usi una semplice sottrazione tipo 0-millis, così hai il conteggio alla rovescia

stefa24

#17
Feb 24, 2012, 07:55 am Last Edit: Feb 24, 2012, 08:03 am by stefa24 Reason: 1
ciao
@leo grazie per la pazienza, ho capito l'errore sul conteggio, riguardo a millis() ho capito perchè conta alla rovescia avevo assegnato
Code: [Select]
int tempo[6]={0,0,0,0,0,0};
invece di questo
Code: [Select]
unsigned long tempo[6]={0,0,0,0,0,0};

stefano
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew
arduino UNO rev 3
ide 1.6.0

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy