Skocz do zawartości

Zmienianie wartości zmiennej globalnej


coolwilk

Pomocna odpowiedź

Witam. Chcę stworzyć program, który pozwoli mi na odbieranie wartości z zewnątrz tak aby tą wartość przedstawiała zmienna globalna. Jednak zupełnie nie wiem jak to zrobić.

Program, który wstawiłem poniżej, w pętli nieskończonej wypisuje mi a=0.00. Czy macie pomysł jak to zmienić? Jak ustawić wartość zmiennej w funkcji setup() tak aby miała tą samą wartość w loop()?

#include <Timers.h>
#include "Timers.h" 
String readString, dana1, dana2;
double a,n1,n2;
Timers timer1(2); 
void setup() {
 // put your setup code here, to run once:
digitalWrite(4,0);
Serial.begin(9600);
while(Serial.available()==0){} //tutaj zaczynam odbierac wartosci
while (Serial.available()) {
  delay(10);  
  if (Serial.available() >0) {
    char c = Serial.read();  //gets one byte from serial buffer
    readString += c; //makes the string readString
  } 
}

if (readString.length() >0) {
    Serial.println(readString); //see what was received

    dana1 = readString.substring(0, 4); //get the first four characters
    dana2 = readString.substring(4, 8); //get the next four characters 

    int n1; //declare as number  
    int n2;

    char carray1[6]; //konwert stringa w liczbe 
    servo1.toCharArray(carray1, sizeof(carray1));
    n1 = atoi(carray1); 

    char carray2[6];
    servo2.toCharArray(carray2, sizeof(carray2));
    n2 = atoi(carray2); 

    Serial.println(n1);//mamy te liczby ktore chcielismy przeslac
    Serial.println(n2);
  readString="";
} 
delay(100);

double a=1000000/n1; //okres w ms 

timer1.attach(0, a, led1on); // stworzenie zdarzeń przypisanych do funkcji timer1 i określenie ich parametrów (0 - numer porządkowy zdarzenia, a - częstotliwość występowania zdarzenia, led1on - funkcja wywoływana przez zdarzenie)
 timer1.attach(1, 1.5*a, led1off); 

}
void led1on() {

digitalWrite(4,1);
}

void led1off() {
 digitalWrite(4,0);
 timer1.setInterval(1,a);    
}

void loop() {
Serial.println(a);//tutaj a = 0.00
timer1.process(); 
}
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.