Advertisement
Guest User

Untitled

a guest
Aug 17th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. //defining pins for eeprom  
  3. int CLOCK =13;          
  4. int DATA_OUT =12;
  5. int DATA_IN = 11;
  6. int CHIP_SEL =10;
  7.  
  8. void setup(){
  9.   pinMode(CLOCK ,OUTPUT);
  10.   pinMode(DATA_OUT ,OUTPUT);
  11.   pinMode(DATA_IN ,INPUT);
  12.   pinMode(CHIP_SEL ,OUTPUT);
  13.   digitalWrite(CHIP_SEL ,LOW);
  14.   Serial.begin(9600);
  15. }
  16. void sendSer(String s){
  17.   digitalWrite(CHIP_SEL,HIGH);
  18.   int len = s.length();
  19.  
  20.   for (int i=0;i<len;i++){
  21.    char c = s.charAt(i);
  22.    if (c=='0')
  23.      digitalWrite(DATA_OUT, LOW);
  24.    else
  25.      digitalWrite(DATA_OUT, HIGH);
  26.    digitalWrite(CLOCK,HIGH);
  27.    digitalWrite(CLOCK,LOW);
  28.  }
  29.    //needs little delay to work
  30.    delay(10);
  31. }
  32. void recvSer(String s){
  33.  digitalWrite(CHIP_SEL,HIGH);
  34.  int len = s.length();
  35.  for (int i=0;i<len;i++){
  36.    char c = digitalRead(DATA_IN);
  37.    Serial.print(c==LOW ? "0" : "1");
  38.    digitalWrite(CLOCK,HIGH);
  39.    digitalWrite(CLOCK,LOW);
  40.  }
  41. }
  42.  
  43. void loop(){
  44.  
  45.  digitalWrite(CHIP_SEL, HIGH);
  46.  sendSer("00000100"); //sending EWEN instruction
  47.  sendSer("1100000"); //
  48.  digitalWrite(CHIP_SEL,LOW);
  49.  
  50.  digitalWrite(CHIP_SEL, HIGH);
  51.  sendSer("00000101"); //sending WRITE instruction
  52.  sendSer("0000001"); //sending Address
  53.  sendSer("10001101"); //sending data
  54.  digitalWrite(CHIP_SEL,LOW);
  55.  
  56.  digitalWrite(CHIP_SEL, HIGH);
  57.  sendSer("00000110"); //sending READ instruction
  58.  sendSer("0000001"); //sending Address
  59.  
  60.  //dummy zero that is sent at start of read
  61.  digitalWrite(CLOCK,HIGH);
  62.  digitalWrite(CLOCK,LOW);
  63.  
  64.  //receiving data... zeros is just to specify count.
  65.  //no meaning in them... output is to serial
  66.  recvSer("00000000");
  67.  digitalWrite(CHIP_SEL,LOW);
  68.  
  69.  while(1);
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement