Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SPI API Missing Interrupts #1943

Closed
biscuitWizard opened this issue Apr 19, 2016 · 2 comments

Comments

@biscuitWizard
Copy link

commented Apr 19, 2016

Basic Infos

Hardware

Hardware: ESP-12
Core Version: 2.1.0-rc2

Description

The SPI implementation included in the ESP8266 is missing hardware interrupts. The official API lists this function as:

https://www.arduino.cc/en/Reference/SPIusingInterrupt

Without this, one of my libraries is unable to function.

Debug Messages


C:\Users\User\Documents\Arduino\libraries\Adafruit_VS1053_Library\Adafruit_VS1053.cpp: In member function 'boolean Adafruit_VS1053_FilePlayer::useInterrupt(uint8_t)':
C:\Users\User\Documents\Arduino\libraries\Adafruit_VS1053_Library\Adafruit_VS1053.cpp:99:13: error: 'class SPIClass' has no member named 'usingInterrupt'
         SPI.usingInterrupt(dreqinttable[i+1]);
             ^
C:\Users\User\Documents\Arduino\libraries\Adafruit_VS1053_Library\Adafruit_VS1053.cpp: In member function 'void Adafruit_VS1053_FilePlayer::feedBuffer()':
C:\Users\User\Documents\Arduino\libraries\Adafruit_VS1053_Library\Adafruit_VS1053.cpp:235:14: error: 'SREG' was not declared in this scope
   sregsave = SREG;
              ^
C:\Users\User\Documents\Arduino\libraries\Adafruit_VS1053_Library\Adafruit_VS1053.cpp: In constructor 'Adafruit_VS1053::Adafruit_VS1053(int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t)':
C:\Users\User\Documents\Arduino\libraries\Adafruit_VS1053_Library\Adafruit_VS1053.cpp:297:14: error: cannot convert 'volatile uint32_t* {aka volatile unsigned int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in assignment
   clkportreg = portOutputRegister(digitalPinToPort(_clk));
              ^
C:\Users\User\Documents\Arduino\libraries\Adafruit_VS1053_Library\Adafruit_VS1053.cpp:299:15: error: cannot convert 'volatile uint32_t* {aka volatile unsigned int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in assignment
   misoportreg = portInputRegister(digitalPinToPort(_miso));
               ^
C:\Users\User\Documents\Arduino\libraries\Adafruit_VS1053_Library\Adafruit_VS1053.cpp:301:15: error: cannot convert 'volatile uint32_t* {aka volatile unsigned int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in assignment
   mosiportreg = portOutputRegister(digitalPinToPort(_mosi));

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@me-no-dev

This comment has been minimized.

Copy link
Collaborator

commented Apr 21, 2016

the library needs to be made compatible with ESP8266. I have used VS1053 just fine with my ESPs.
From what I can tell, it thinks that it's compiling for AVR Arduino.

@devyte

This comment has been minimized.

Copy link
Collaborator

commented Oct 17, 2017

It seems that the library has been updated in the meantime to support ESP8266. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.