Hello guys,
I'm quiet new to this forum. I'm programing arduino due to control my DSP (select channels) using spi, although the code I use seems to be right and it converts, but as i press a button for it to send code trough it does nothing, all pins are always high except MISO its low (checked with scope). The SPI is configured to work with DSP. Any ideas why?
I use SPI header and pin 4 for ss. I was first thinking its the board because I wired it wrong as it is very unclear witch one to use ICSP or ISP so i bough another board.
#include <SPI.h>
int CD;
int aux;
int ps4;
int PC;
void setup() {
pinMode(30, INPUT);//STATING INPUTS
pinMode(31, INPUT);
pinMode(32, INPUT);
pinMode(33, INPUT);
pinMode(4, OUTPUT);//STATING INPUTS
pinMode(SCK, OUTPUT);
pinMode(MOSI, OUTPUT);
SPI.begin(4);
SPI.setClockDivider(4, 16);//SETUP SPI SPEED 3Mhz yh slow... if waited for ppl to config 22Mhz...
SPI.setDataMode(4, SPI_MODE3); //setup SPI type
SPI.setBitOrder(4, MSBFIRST);
//PULL CLACH 3 TIMES turn dsps SPI on.
digitalWrite(4, LOW);
digitalWrite(4, HIGH);
digitalWrite(4, LOW);
digitalWrite(4, HIGH);
digitalWrite(4, LOW);
digitalWrite(4, HIGH);
}
void loop() {
if(digitalRead(30) == HIGH)
CD++;
if (CD>1);
CD==0;
if(digitalRead(31) == HIGH)
aux++;
if (aux>1);
aux==0;
if(digitalRead(32) == HIGH)
ps4++;
if (ps4>1);
ps4==0;
if(digitalRead(33) == HIGH)
PC++;
if (PC>1);
PC==0;
if (CD==1 ) {
aux==0;
ps4==0;
PC==0;
SPI.transfer(4, 0b0000000, SPI_CONTINUE);//chip adress
SPI.transfer(4, 0xF000, SPI_CONTINUE);//sub adress
SPI.transfer(4, 0x0060, SPI_CONTINUE ); //mute_1 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_1 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_1 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_1 muted
SPI.transfer(4, 0x00); //mute_1 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0061, SPI_CONTINUE ); //mute_2 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_2 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_2 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_2 muted
SPI.transfer(4, 0x00); //mute_2 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0062, SPI_CONTINUE ); //mute_3 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_3 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_3 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_3 muted
SPI.transfer(4, 0x00); //mute_3 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x005F, SPI_CONTINUE ); //mute_0 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_0 unmuted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_0 unmuted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_0 unmuted
SPI.transfer(4, 0x01); //mute_0 unmuted
};
if (aux==1 ) {
CD==0;
ps4==0;
PC==0;
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE); //subadress
SPI.transfer(4, 0x0061, SPI_CONTINUE ); //mute_2 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_2 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_2 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_2 muted
SPI.transfer(4, 0x00); //mute_2 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0062, SPI_CONTINUE ); //mute_3 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_3 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_3 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_3 muted
SPI.transfer(4, 0x00); //mute_3 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x005F, SPI_CONTINUE ); //mute_0 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_0 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_0 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_0 muted
SPI.transfer(4, 0x00); //mute_0 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0060, SPI_CONTINUE ); //mute_1 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_1 inmuted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_1 unmuted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_1 unmuted
SPI.transfer(4, 0x01); //mute_1 unmuted
};
if (ps4==1) {
CD==0;
aux==0;
PC==0;
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x005F, SPI_CONTINUE ); //mute_0 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_0 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_0 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_0 muted
SPI.transfer(4, 0x00); //mute_0 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0060, SPI_CONTINUE ); //mute_1 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_1 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_1 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_1 muted
SPI.transfer(4, 0x00); //mute_1 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0062, SPI_CONTINUE ); //mute_3 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_3 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_3 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_3 muted
SPI.transfer(4, 0x00); //mute_3 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0061, SPI_CONTINUE ); //mute_2 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_2 unmuted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_2 unmuted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_2 unmuted
SPI.transfer(4, 0x01); //mute_2 unmuted
};
if (PC==0 ) {
CD==0;
ps4==0;
aux==0;
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x005F, SPI_CONTINUE ); //mute_0 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_0 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_0 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_0 muted
SPI.transfer(4, 0x00); //mute_0 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0060, SPI_CONTINUE ); //mute_1 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_1 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_1 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_1 muted
SPI.transfer(4, 0x00); //mute_1 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0061, SPI_CONTINUE ); //mute_2 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_2 muted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_2 muted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_2 muted
SPI.transfer(4, 0x00); //mute_2 muted
SPI.transfer(4, 0b0000000, SPI_CONTINUE);
SPI.transfer(4, 0xF000, SPI_CONTINUE);
SPI.transfer(4, 0x0062, SPI_CONTINUE ); //mute_3 adr
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_3 unmuted
SPI.transfer(4, 0x00, SPI_CONTINUE ); //mute_3 unmuted
SPI.transfer(4, 0x00 , SPI_CONTINUE ); //mute_3 unmuted
SPI.transfer(4, 0x01); //mute_3 unmuted
};
}
may be anyone knows any good books/web sites to help learning c?