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/
arduino UNO rev 3
ide 105

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/
arduino UNO rev 3
ide 105

Go Up