double post.. ![]()
here is the current/latest version of the code...
however.. when I try to print out the values for register data & register address... I get nothing:
not sure if Im doing something wrong? or if tis is NOT how you pull data form an array in C/Arduino?
#include <SPI.h>Â
//-----[this is SPI hardware wiring pinout only]-----//
/*
Arduino pin D13 is connected to the DataIn (MAX7221 pin:13)
Arduino pin D11 is connected to the CLK (MAX7221 pin:1)
Arduino pin D10 is connected to LOAD (MAX7221 pin:12)
*/
// define MAX72xx default register addresses
#define DECODE_MODE 0x09 // Code B Decode Digits 0-7: 0xFF / No-Decode Mode: 0x00
#define INTENSITY_ADDRESS 0x0A // 0x07 to start, half intensity. valid from 0x00 (min) to 0x0F (max)
#define SCANLIMIT_ADDRESS 0x0B // All 8 digits on = 0xFF?? FF? Datasheet says 0x07?
#define SHUTDOWN_ADDRESS 0x0CÂ // Normal operation = 0x01 / Shutdown = 0x00 (powers up in shutdown mode)
#define DISPLAYTEST_ADDRESS 0x0F // 0x01 = all lights on full, 0x00 = normal ops
//---[define register addresses ['register/digit x' represent 1 section/grouping of 8 leds]---//
#define register1 0x01 // digit 0
#define register2 0x02 // digit 1
#define register3 0x03 // digit 2
#define register4 0x04 // digit 3
#define register5 0x05 // digit 4
#define register6 0x06 // digit 5
#define register7 0x07 // digit 6
#define register8 0x08 // digit 7
//--[define the SS pin]--//
#define SS 10 //hardware slave select pin on Arduino Due.
// create array to hold the register addresses
//byte registerAddress[] = {0,1,2,3,4,5,6,7};
byte registerAddress[] = {register1, register2, register3, register4, register5, register6, register7, register8};
// initialize array with some data/pattern
byte registerData[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000};
void setup() {
 Serial.begin(9600);
 Serial.println("--SET UP CHIP--");
 //define 'SS' pin as output (needed for SPI....even if other devices use other pins as their SS/CS pins...correct?
 pinMode (SS, OUTPUT);
 // startthe SPI library
 SPI.begin();Â
 // bring 'SS' pin low
 digitalWrite (SS,LOW);
 //transfer SPI data to chip/device
 SPI.transfer (DECODE_MODE);Â
 SPI.transfer (0x00); // 0x00 - no-decode mode
 SPI.transfer (INTENSITY_ADDRESS);Â
 SPI.transfer (0x0F); // 0x0F - max on/brightness
 SPI.transfer (SCANLIMIT_ADDRESS);Â
 SPI.transfer (0x07); // 0xFF or 0x07? 0x07 - all display digits on
 SPI.transfer (SHUTDOWN_ADDRESS);Â
 SPI.transfer (0x01); // 0x01 - normal operation mode
 SPI.transfer(DISPLAYTEST_ADDRESS);
 SPI.transfer(0x00); // 0x00 - normal operation mode
 //bring 'SS' pin high
 digitalWrite (SS, HIGH);
}
void loop() {
 for (int x = 0; x < 8; x=x+1){
  digitalWrite (SS,LOW);
  Serial.println("");
  Serial.println("REGISTER AADDRESS");
  Serial.println(registerAddress[x]);
  Serial.println("");
  SPI.transfer (registerAddress[x]); // register to write to
  Serial.println("REGISTER DATA");
  Serial.println(registerData[x]);
  Serial.println("");
  SPI.transfer (registerData[x]); // and value
  digitalWrite (SS, HIGH);
 }
}