Problem z Scheduler.startLoop()

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
markuz
Młodszy majsterkowicz
Posty: 7
Rejestracja: 7 gru 2012, 23:27

Problem z Scheduler.startLoop()

Post autor: markuz » 3 lut 2013, 23:58

Ściągnąłem bibliotekę Scheduler z strony Arduino wgrałem ją do katalogu bibliotek i wszystko nie by OK pojawiła się w programie w bibliotekach wybieram ją i nadal wszystko niby ok ale jak wrzucę przykładowy program z strony arduino:

Kod: Zaznacz cały

[b]#include <Scheduler.h>

int counter = 0;
int counter1 = 0;

void setup()
{
  Scheduler.startLoop(loop1);
}

void loop () {
 analogWrite(9, counter);
 counter++;
 if (counter > 255){
  counter = 0;
 }
 delay(33);
}

void loop1 () {
 analogWrite(10, counter1);
 counter1=counter1+5;
 if (counter1 > 255){
  counter1 = 0;
 }
 delay(10);
 yield();
}[/b]


Przy sprawdzaniu zawsze zatrzymuje się na Scheduler.startLoop() i wywala błąd :(

sketch_feb02a.ino: In function 'void loop1()':
sketch_feb02a:27: error: 'yield' was not declared in this scope


Co jest powodem? :(

Ponadto chciałem spytać czy dobrze rozumiem działanie tej biblioteki, ponieważ wiemy że procesor nie wykonuje na raz wielu programów lecz skacze z jednego na drugi robiąc wrażenie że wykonuje je jednocześnie. Patrząc na kod przykładowy widzę dwa opóźnienia 33ms i 10ms czy to są czasy które procesor ma poświęcić danej pętli?
Jeśli tak to czy można skonfigurować tak pętle aby Np: główna pętla chodziła przez 50ms po czym przeskoczyła do pętli drugiej wykonała ją i wróciła do pętli głównej. Czy należy w drugiej pętli też ustawić czas np: 2ms na jej wykonanie?

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
cube
Złota rączka
Posty: 834
Rejestracja: 2 gru 2012, 17:02

Re: Problem z Scheduler.startLoop()

Post autor: cube » 4 lut 2013, 00:29

I oczywiście twoim arduino jest wersja DUE, z jaką tylko owa biblioteka działa?
markuz
Młodszy majsterkowicz
Posty: 7
Rejestracja: 7 gru 2012, 23:27

Re: Problem z Scheduler.startLoop()

Post autor: markuz » 4 lut 2013, 00:40

cube pisze:I oczywiście twoim arduino jest wersja DUE, z jaką tylko owa biblioteka działa?
Upss, tego to nie wiem bo akurat bawię się Polskim odpowiednikiem Arduino czyli zestawem AVTduino (AVT5272)
ale mam też Polski odpowiednik Arduino Mega 2560 czyli AVT5362C czy któryś z nich obsługuje tą bibliotekę?
Awatar użytkownika
cube
Złota rączka
Posty: 834
Rejestracja: 2 gru 2012, 17:02

Re: Problem z Scheduler.startLoop()

Post autor: cube » 4 lut 2013, 00:46

Due działa na 32-bitowym procesorze architektury ARM Cortex-M3.
Mega i zwykłe arduino działają na 8-bitowych avr.
Noł łej.
markuz
Młodszy majsterkowicz
Posty: 7
Rejestracja: 7 gru 2012, 23:27

Re: Problem z Scheduler.startLoop()

Post autor: markuz » 4 lut 2013, 01:06

cube pisze:Due działa na 32-bitowym procesorze architektury ARM Cortex-M3.
Mega i zwykłe arduino działają na 8-bitowych avr.
Noł łej.
OK, a jest jakaś podobna biblioteka która umożliwiała by stworzenie dwóch pętli programu.
Awatar użytkownika
Maxik
Starszy majsterkowicz
Posty: 405
Rejestracja: 6 lip 2012, 18:27
Lokalizacja: Gdańsk
Kontakt:

Re: Problem z Scheduler.startLoop()

Post autor: Maxik » 4 lut 2013, 18:44

Małe szanse żeby AVR coś takiego ogarnął.
wachu
Młodszy majsterkowicz
Posty: 23
Rejestracja: 25 wrz 2012, 23:02

Re: Problem z Scheduler.startLoop()

Post autor: wachu » 4 lut 2013, 19:47

markuz, pytanie co chcesz osiągnąć w swoim programie -może to będzie wystarczające: http://sprae.jogger.pl/2011/10/14/wielo ... w-arduino/ ?
ODPOWIEDZ

Strony partnerskie: