Music Shield V1.2

Тема в разделе "Arduino & Shields", создана пользователем Alex Popow, 23 сен 2015.

Метки:
  1. Alex Popow

    Alex Popow Нуб

    Народ помогите пожалуйста.Скачал библиотеки с которые прилагалися тут (http://wiki.amperka.ru/звук:mp3-music-shield). Загрузил скетч из образцов, немного поменял его. Получилось так:

    #include <Fat16.h>
    #include <Fat16Util.h>
    #include <NewSPI.h>
    #include <arduino.h>
    #include "pins_config.h"
    #include "vs10xx.h"
    #include "newSDLib.h"
    #include "MusicPlayer.h"
    MusicPlayer myplayer;
    void setup()
    {
    Serial.begin(9600);
    myplayer.keyDisable();
    myplayer.digitalControlEnable();
    myplayer.begin();

    myplayer.attachDigitOperation(2,playPause,HIGH);
    }
    void loop()
    {
    myplayer.setPlayMode(MODE_NORMAL);
    myplayer.creatPlaylist();
    myplayer.playList();
    while(1);
    }

    void playPause()//User-defined function
    {
    static boolean flag_on = 1;
    if(flag_on) myplayer.opPlay();
    else myplayer.opPause();
    flag_on = !flag_on;
    }

    После попытки скомпилировать выдал такую ошибку:

    digitalInputControl.cpp.o: In function `MusicPlayer: : оpPlay()':
    C:\Program Files (x86)\Arduino\libraries\MusicPlayer_v1_7/MusicPlayer.h:98: undefined reference to `playingState'
    C:\Program Files (x86)\Arduino\libraries\MusicPlayer_v1_7/MusicPlayer.h:98: undefined reference to `playingState'
    digitalInputControl.cpp.o: In function `MusicPlayer: : оpPause()':
    C:\Program Files (x86)\Arduino\libraries\MusicPlayer_v1_7/MusicPlayer.h:99: undefined reference to `playingState'
    C:\Program Files (x86)\Arduino\libraries\MusicPlayer_v1_7/MusicPlayer.h:99: undefined reference to `playingState'
    collect2.exe: error: ld returned 1 exit status
    Multiple libraries were found for "Fat16.h"
    Used: C:\Program Files (x86)\Arduino\libraries\Fat16
    Not used: C:\Program Files (x86)\Arduino\libraries\Robot_Control
    Ошибка компиляции.

    В чем может быть проблема? Почему он жалуется на "playingState"?
     
  2. Mestniy

    Mestniy Гуру

    А вы поставили все библиотеки, которые были указаны в ссылки? Мне кажется арда ругается на то что у Вас библиотек нужных нет. Если ставили, то перепроверте их наличие(мало ли). И можете пояснить, что именно вы редактировали в исходном коде?
     
    Последнее редактирование: 23 сен 2015
  3. Alex Popow

    Alex Popow Нуб

    Библиотеки закинул все.
    Код исходный к сожалению скинуть не могу в данный момент. Единственное знаю точно, ему не нравится вот эта часть кода

    r.attachDigitOperation(2,playPause,HIGH);
    Без нее ошибок даже нет.
    Когда добовляю эту строку он начинает жаловаться на переменную playingState(она находится в самой библиотеки)
    Возможно все же косяк с библиотеками. Может кто знает рабочие библиотеки, скинте пожалуйста. Буду благодарен.
     
  4. Mestniy

    Mestniy Гуру

    А почему у вас 2 стоит. Поставте 1. вас же uno?
     
  5. Alex Popow

    Alex Popow Нуб

    2-это пин с который должен управлять шилдом.
     
  6. Alex Popow

    Alex Popow Нуб

    У меня есть и мега и uno.
     
  7. Mestniy

    Mestniy Гуру

    это же прерывание? верно? Если да, то на уно всего 2 порта прерывания 2 и, как я помню 3. Так вот 2 - это 0, А 3 - 1...
     
  8. Alex Popow

    Alex Popow Нуб

    Попробую
     
  9. Alex Popow

    Alex Popow Нуб

    Вот список библиотек.
    upload_2015-9-23_20-41-7.png
    Вот исходник:

    #include <Fat16.h>
    #include <Fat16Util.h>
    #include <NewSPI.h>
    #include <arduino.h>
    #include "pins_config.h"
    #include "vs10xx.h"
    #include "newSDLib.h"
    #include "MusicPlayer.h"
    MusicPlayer myplayer;
    void setup()
    {
    Serial.begin(9600);
    myplayer.keyDisable();//keys disable first;
    myplayer.digitalControlEnable();
    myplayer.begin();
    //myplayer.attachDigitOperation(2,playNextSong,HIGH);
    //myplayer.attachDigitOperation(2,playPause,HIGH);
    myplayer.attachDigitOperation(2,volumeUp,HIGH);//the button connected to pin2,and HIGH leval is valid
    }
    void loop()
    {
    myplayer.setPlayMode(MODE_NORMAL);
    myplayer.creatPlaylist();//If the current playlist is empty,it will add all the songs in the root directory to the playlist.
    //Otherwise it will add the current song to the new playlist.
    myplayer.playList();
    while(1);//If the mode is normal, it will stop when it finished playing all the songs in the playlist
    }
    void playNextSong()//User-defined function
    {
    myplayer.opNextSong();
    }
    void playPause()//User-defined function
    {
    static boolean flag_on = 1;
    if(flag_on) myplayer.opPlay();
    else myplayer.opPause();
    flag_on = !flag_on;
    }
    void volumeUp()//User-defined function
    {
    myplayer.opVolumeUp();
    }
     
  10. Alex Popow

    Alex Popow Нуб

    Как выяснилось от пина ни чего не зависит. И как оказалось основная ошибка не в этом myplayer.attachDigitOperation(2,playPause,HIGH); , а в этих двух строчках myplayer.opPlay();, myplayer.opPause();.
     
  11. Mestniy

    Mestniy Гуру

    Ну в этом же тоже ошибка?
    Так вы решили проблему?
     
  12. Alex Popow

    Alex Popow Нуб

    К сожалению нет. Буду пробовать другие способы решения.
     
  13. Mestniy

    Mestniy Гуру

    перезагрузите библиотеки.