Browse Source

Use fastio for HAL SPI EEPROM

Scott Lahteine 7 years ago
parent
commit
185dec800b
1 changed files with 14 additions and 14 deletions
  1. 14
    14
      Marlin/src/HAL/SpiEeprom.cpp

+ 14
- 14
Marlin/src/HAL/SpiEeprom.cpp View File

44
   eeprom_temp[0] = CMD_READ;
44
   eeprom_temp[0] = CMD_READ;
45
   eeprom_temp[1] = ((unsigned)pos>>8) & 0xFF; // addr High
45
   eeprom_temp[1] = ((unsigned)pos>>8) & 0xFF; // addr High
46
   eeprom_temp[2] = (unsigned)pos& 0xFF;       // addr Low
46
   eeprom_temp[2] = (unsigned)pos& 0xFF;       // addr Low
47
-  digitalWrite(SPI_EEPROM1_CS, HIGH);
48
-  digitalWrite(SPI_EEPROM1_CS, LOW);
47
+  WRITE(SPI_EEPROM1_CS, HIGH);
48
+  WRITE(SPI_EEPROM1_CS, LOW);
49
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
49
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
50
 
50
 
51
   v = spiRec(SPI_CHAN_EEPROM1);
51
   v = spiRec(SPI_CHAN_EEPROM1);
52
-  digitalWrite(SPI_EEPROM1_CS, HIGH);
52
+  WRITE(SPI_EEPROM1_CS, HIGH);
53
   return v;
53
   return v;
54
 }
54
 }
55
 
55
 
62
   eeprom_temp[0] = CMD_READ;
62
   eeprom_temp[0] = CMD_READ;
63
   eeprom_temp[1] = ((unsigned)eeprom_address>>8) & 0xFF; // addr High
63
   eeprom_temp[1] = ((unsigned)eeprom_address>>8) & 0xFF; // addr High
64
   eeprom_temp[2] = (unsigned)eeprom_address& 0xFF;       // addr Low
64
   eeprom_temp[2] = (unsigned)eeprom_address& 0xFF;       // addr Low
65
-  digitalWrite(SPI_EEPROM1_CS, HIGH);
66
-  digitalWrite(SPI_EEPROM1_CS, LOW);
65
+  WRITE(SPI_EEPROM1_CS, HIGH);
66
+  WRITE(SPI_EEPROM1_CS, LOW);
67
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
67
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
68
 
68
 
69
   uint8_t *p_dest = (uint8_t *)dest;
69
   uint8_t *p_dest = (uint8_t *)dest;
70
   while (n--)
70
   while (n--)
71
     *p_dest++ = spiRec(SPI_CHAN_EEPROM1);
71
     *p_dest++ = spiRec(SPI_CHAN_EEPROM1);
72
-  digitalWrite(SPI_EEPROM1_CS, HIGH);
72
+  WRITE(SPI_EEPROM1_CS, HIGH);
73
 }
73
 }
74
 
74
 
75
 void eeprom_write_byte(uint8_t* pos, uint8_t value) {
75
 void eeprom_write_byte(uint8_t* pos, uint8_t value) {
77
 
77
 
78
   /*write enable*/
78
   /*write enable*/
79
   eeprom_temp[0] = CMD_WREN;
79
   eeprom_temp[0] = CMD_WREN;
80
-  digitalWrite(SPI_EEPROM1_CS, LOW);
80
+  WRITE(SPI_EEPROM1_CS, LOW);
81
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 1);
81
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 1);
82
-  digitalWrite(SPI_EEPROM1_CS, HIGH);
82
+  WRITE(SPI_EEPROM1_CS, HIGH);
83
   delay(1);
83
   delay(1);
84
 
84
 
85
   /*write addr*/
85
   /*write addr*/
86
   eeprom_temp[0] = CMD_WRITE;
86
   eeprom_temp[0] = CMD_WRITE;
87
   eeprom_temp[1] = ((unsigned)pos>>8) & 0xFF;  //addr High
87
   eeprom_temp[1] = ((unsigned)pos>>8) & 0xFF;  //addr High
88
   eeprom_temp[2] = (unsigned)pos & 0xFF;       //addr Low
88
   eeprom_temp[2] = (unsigned)pos & 0xFF;       //addr Low
89
-  digitalWrite(SPI_EEPROM1_CS, LOW);
89
+  WRITE(SPI_EEPROM1_CS, LOW);
90
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
90
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
91
 
91
 
92
   spiSend(SPI_CHAN_EEPROM1, value);
92
   spiSend(SPI_CHAN_EEPROM1, value);
93
-  digitalWrite(SPI_EEPROM1_CS, HIGH);
93
+  WRITE(SPI_EEPROM1_CS, HIGH);
94
   delay(7);   // wait for page write to complete
94
   delay(7);   // wait for page write to complete
95
 }
95
 }
96
 
96
 
99
 
99
 
100
   /*write enable*/
100
   /*write enable*/
101
   eeprom_temp[0] = CMD_WREN;
101
   eeprom_temp[0] = CMD_WREN;
102
-  digitalWrite(SPI_EEPROM1_CS, LOW);
102
+  WRITE(SPI_EEPROM1_CS, LOW);
103
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 1);
103
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 1);
104
-  digitalWrite(SPI_EEPROM1_CS, HIGH);
104
+  WRITE(SPI_EEPROM1_CS, HIGH);
105
   delay(1);
105
   delay(1);
106
 
106
 
107
   /*write addr*/
107
   /*write addr*/
108
   eeprom_temp[0] = CMD_WRITE;
108
   eeprom_temp[0] = CMD_WRITE;
109
   eeprom_temp[1] = ((unsigned)eeprom_address>>8) & 0xFF;  //addr High
109
   eeprom_temp[1] = ((unsigned)eeprom_address>>8) & 0xFF;  //addr High
110
   eeprom_temp[2] = (unsigned)eeprom_address & 0xFF;       //addr Low
110
   eeprom_temp[2] = (unsigned)eeprom_address & 0xFF;       //addr Low
111
-  digitalWrite(SPI_EEPROM1_CS, LOW);
111
+  WRITE(SPI_EEPROM1_CS, LOW);
112
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
112
   spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
113
 
113
 
114
   spiSend(SPI_CHAN_EEPROM1, (const uint8_t*)src, n);
114
   spiSend(SPI_CHAN_EEPROM1, (const uint8_t*)src, n);
115
-  digitalWrite(SPI_EEPROM1_CS, HIGH);
115
+  WRITE(SPI_EEPROM1_CS, HIGH);
116
   delay(7);   // wait for page write to complete
116
   delay(7);   // wait for page write to complete
117
 }
117
 }
118
 
118
 

Loading…
Cancel
Save