Народ помогите пожалуйста.Скачал библиотеки с которые прилагалися тут (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"?
А вы поставили все библиотеки, которые были указаны в ссылки? Мне кажется арда ругается на то что у Вас библиотек нужных нет. Если ставили, то перепроверте их наличие(мало ли). И можете пояснить, что именно вы редактировали в исходном коде?
Библиотеки закинул все. Код исходный к сожалению скинуть не могу в данный момент. Единственное знаю точно, ему не нравится вот эта часть кода r.attachDigitOperation(2,playPause,HIGH); Без нее ошибок даже нет. Когда добовляю эту строку он начинает жаловаться на переменную playingState(она находится в самой библиотеки) Возможно все же косяк с библиотеками. Может кто знает рабочие библиотеки, скинте пожалуйста. Буду благодарен.
это же прерывание? верно? Если да, то на уно всего 2 порта прерывания 2 и, как я помню 3. Так вот 2 - это 0, А 3 - 1...
Вот список библиотек. Вот исходник: #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(); }
Как выяснилось от пина ни чего не зависит. И как оказалось основная ошибка не в этом myplayer.attachDigitOperation(2,playPause,HIGH); , а в этих двух строчках myplayer.opPlay();, myplayer.opPause();.