mirror of
https://github.com/Kugelschieber/arduino-c.git
synced 2026-01-18 02:50:26 +00:00
Started implementing EEPROM writer/reader for AT28C256.
This commit is contained in:
34
at28c256/at28c256.c
Normal file
34
at28c256/at28c256.c
Normal file
@@ -0,0 +1,34 @@
|
||||
#include "at28c256.h"
|
||||
#include "../ard/pins.h"
|
||||
|
||||
unsigned char _addrck, _addr;
|
||||
|
||||
void at28c256_init(unsigned char addrck, unsigned char addr) {
|
||||
pin_mode(addrck, OUTPUT);
|
||||
digital_write(addrck, LOW); // disable
|
||||
pin_mode(addr, OUTPUT);
|
||||
digital_write(addr, LOW); // disable
|
||||
|
||||
_addrck = addrck;
|
||||
_addr = addr;
|
||||
}
|
||||
|
||||
void at28c256_write(unsigned short addr, unsigned char data) {
|
||||
// set the address
|
||||
unsigned int i;
|
||||
|
||||
for(i = 0; i < 16; i++) {
|
||||
if(addr & (1 << (15-i))) {
|
||||
digital_write(_addr, HIGH);
|
||||
} else {
|
||||
digital_write(_addr, LOW);
|
||||
}
|
||||
|
||||
digital_write(_addrck, HIGH);
|
||||
digital_write(_addrck, LOW);
|
||||
}
|
||||
|
||||
digital_write(_addr, LOW);
|
||||
|
||||
// TODO write data
|
||||
}
|
||||
8
at28c256/at28c256.h
Normal file
8
at28c256/at28c256.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef AT28C256_H_
|
||||
#define AT28C256_H_
|
||||
|
||||
void at28c256_init(unsigned char, unsigned char);
|
||||
void at28c256_write(unsigned short, unsigned char);
|
||||
//unsigned char at28c256_read(unsigned short); TODO
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user