#include <Wire.h>
#include <WireKinetis.h>
#define adress 0x34
void setup() {
Serial.begin(9600);
Serial.println("setup begin");
Wire.beginTransmission(adress);
Serial.println("setup");
Wire.write(0x01);
Serial.println("setup");
Wire.write(0xFF); //initial setup of the chip
Serial.println("setup");
Wire.endTransmission();
Serial.println("setup");
Wire.beginTransmission(adress);
Wire.write(0x1E);
Wire.write(00000001); // set row 1
Wire.endTransmission();
Serial.println("setup");
Wire.beginTransmission(adress);
Wire.write(0x1E);
Wire.write(00001111); //set colum 1-4
Wire.endTransmission();
Serial.println("setup done");
}
byte REG;
void loop() {
Wire.beginTransmission(adress);
Wire.write(0x04);
Wire.endTransmission();
Wire.requestFrom(adress, 1); // request 1 byte(s) from slave device.
while(Wire.available()) // slave may send less than requested.
{
REG = Wire.read();
Serial.println(REG);
}
}
Do yourself a favour and solder it better... it works now, but you can't be sure it still works in a hour, a week or a month.The program suddenly started working I dont know what I have done, but now it works.
but you can't be sure it still works in a hour, a week or a month.
Do you have any ideas what icould caus the hang?
#include <Wire.h>
#include <WireKinetis.h>
#include "Wire.h"
#define adress 0x34
#define row 0x07
#define col 0x0F
void setup() {
pinMode(11, INPUT_PULLUP);
pinMode(13, OUTPUT);
Serial.begin(9600);
delay(1000);
Serial.println("setup begin");
Wire.begin();
Wire.beginTransmission(0x34);
Serial.println("setup");
Wire.write(0x01);
Serial.println("setup");
Wire.write(0x01); //initial setup of the chip
Serial.println("setup");
int n = Wire.endTransmission();
Serial.println(n);
Serial.println("setup");
Wire.beginTransmission(adress);
Wire.write(0x1D);
Wire.write(row); // set row 1
n = Wire.endTransmission();
Serial.println(n);
Serial.println("setup");
Wire.beginTransmission(adress);
Wire.write(0x1E);
Wire.write(col); //set colum 1-4
n = Wire.endTransmission();
Wire.beginTransmission(adress);
Wire.write(0x29);
Wire.write(row); // set debounce for row 1
n = Wire.endTransmission();
Serial.println(n);
Wire.beginTransmission(adress);
Wire.write(0x2A);
Wire.write(col); // set row 1
n = Wire.endTransmission();
Serial.println(n);
Serial.println("setup done");
Serial.println(n);
}
byte REG;
void loop() {
int INTERUPPT = digitalRead(11);
if(INTERUPPT == LOW)
{
digitalWrite(13, HIGH);
}
delay(1000);
Wire.beginTransmission(0x34);
Wire.write(0x1E);
Serial.print("prenos: ");
int m = Wire.endTransmission();
Serial.println(m);
Wire.requestFrom(0x34, 1); // request 1 byte(s) from slave device.
while(Wire.available()) // slave may send less than requested.
{
REG = Wire.read();
Serial.print("reg: ");
Serial.println(REG);
}
// delay(1000);
}