Skocz do zawartości

Arduino Nano - rejestry (biblioteki Tone i IRremote)


Markos

Pomocna odpowiedź

Witam,

Mam arduino nano i używam biblioteki IRremote.h do sterowania pilotem .

Dodałem także buzzer  z funkcją tone, i zaczyna się problem w postaci komunikatu.

Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':

(.text+0x0): multiple definition of `__vector_7'

libraries\IRremote-2.2.3\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

Czy ktoś możne doraźnie mnie wesprzeć?

Z komunikatu wynika ze jest konflikt i trzeba zmodyfikować pliki ale  co na co zmienić to dla mnie czarna magia.

Mogę przesłać pliki (Tone.cpp i IRremote.cpp.)  jak będzie taka potrzeba.

Link do komentarza
Share on other sites

Problem polega na tym, że obie biblioteki używają tego samego timera. Właściwie w takim przypadku musiałbyś albo napisać jedną z tych bibliotek od nowa, aby używała innego timera, albo poszukać takiej gotowej. Ewentualnie możesz sterować buzzerem sofrware-owo, bez przerwania, bo przecież to nie jest jakaś wielka częstotliwość.

Edytowano przez deshipu
  • Lubię! 1
Link do komentarza
Share on other sites

Nie wiem jakie tam melodyjki potrzebujesz wygrywać na tym sprzęcie, ale jeśli rzecz sprowadza się do paru pipnięć lub choćby tylko dźwiękowego potwierdzenia jakiegoś zdarzenia to generacja prostych tonów na timerze jest do ogarnięcia w kilka minut. Napisz dokładnie co chcesz zrobić. Jeśli nie używasz jeszcze innych bibliotek o których tu nie wspomniałaś, to po zajęciu timera 1 przez komunikację IR zostaje jeszcze wolny (w sensie nieużywany) timer 2. On też może sprzętowo generować sygnał prostokątny na pinie więc kilka zapisów do rejestrów i masz dźwięk. A swoją drogą gdy czujesz wstręt do programowania żywcem na rejestrach sprzętu, to nie wyobrażam sobie by nie istniała jakaś biblioteka do piszczenia tym timerem. A są też metody beztimerowe:

https://forum.arduino.cc/index.php?topic=235774.0

które jednak (z tego co się domyślam) zajmują 100% procesora na cały czas trwania dźwięku, ale w przypadku krótkiego, np. 100ms bipnięcia potwierdzającego wciśnięcie przycisku to może nie być problem.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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.