summaryrefslogtreecommitdiff
path: root/firmware/eeprom.c
diff options
context:
space:
mode:
authorYves Fischer <yvesf-git@xapek.org>2011-10-13 20:33:30 +0200
committerYves Fischer <yvesf-git@xapek.org>2011-10-13 20:33:30 +0200
commit5d9d373a959271b498710817d08c2ea8e153aa6e (patch)
tree6867e887454a850b4e15616000ef342a1c661c7e /firmware/eeprom.c
parent35a36b0a6c69ce136fd6ea2a203d34e48e1291e8 (diff)
downloadmini-octopus-5d9d373a959271b498710817d08c2ea8e153aa6e.tar.gz
mini-octopus-5d9d373a959271b498710817d08c2ea8e153aa6e.zip
correct firmware??
Diffstat (limited to 'firmware/eeprom.c')
-rw-r--r--firmware/eeprom.c119
1 files changed, 0 insertions, 119 deletions
diff --git a/firmware/eeprom.c b/firmware/eeprom.c
deleted file mode 100644
index 3f0c1a1..0000000
--- a/firmware/eeprom.c
+++ /dev/null
@@ -1,119 +0,0 @@
-#include "common.h"
-#include "protocol.h"
-
-#include <inttypes.h>
-#include <stdbool.h>
-#include <avr/io.h>
-#include <avr/eeprom.h>
-#include <stdio.h>
-
-#include "eeprom.h"
-#include "debug.h"
-
-#define EEPROM_READY() while(EECR & (1 << EEWE));
-
-void eeprom_parser(char *buf)
-{
- uint16_t addr;
- uint16_t length;
-
- addr = ((uint16_t)buf[2]) +
- ((uint16_t)buf[3] << 8);
-
- length = ((uint16_t)buf[4]) +
- ((uint16_t)buf[5] << 8);
-
- debugf("eeprom_parser: length: %u, addr: %u\n", length, addr);
-
- switch(buf[0])
- {
- case CMD_EEPROM_READ_BYTES:
- eeprom_read_bytes_usb(addr, length);
- break;
-
- case CMD_EEPROM_WRITE_BYTES:
- eeprom_write_bytes_usb(addr, &buf[6], length);
- break;
-
- default:
- answer[0] = buf[0];
- answer[1] = RSP_UNKOWN_CMD;
- answer[2] = 0;
- CommandAnswer(3);
- }
-}
-
-
-void eeprom_read_bytes_usb(uint16_t addr, uint16_t length)
-{
- answer[0] = CMD_EEPROM_READ_BYTES;
- answer[1] = eeprom_read_bytes(addr, (char *)&answer[2], length);
- answer[2+length] = 0;
-
- debugf("read: %s\n", &answer[2]);
-
- CommandAnswer(3+length);
-}
-
-uint8_t eeprom_read_bytes(uint16_t addr, char * buf, uint16_t length)
-{
- uint8_t i;
-
- if(addr > MAX_ADDR)
- return RSP_ERROR;
-
- // wait for eeprom
- EEPROM_READY();
-
- for(i = 0; i < length; i++)
- {
-
- buf[i] = eeprom_read_byte((uint8_t*) addr++);
- // set addr
- //EEAR = addr++;
-
- //EECR |= (1 << EERE);
-
- //buf[i] = EEDR;
- //debug_SendHex(buf[i]);
- }
-
- return RSP_OK;
-}
-
-void eeprom_write_bytes_usb(uint16_t addr, char * buf, uint16_t length)
-{
- answer[0] = CMD_EEPROM_WRITE_BYTES;
- answer[1] = eeprom_write_bytes(addr, buf, length);
- answer[2] = 0;
-
- debugf("written: %s\n", buf);
-
- CommandAnswer(3);
-}
-
-uint8_t eeprom_write_bytes(uint16_t addr, char * buf, uint16_t length)
-{
- uint8_t i;
-
- if(addr > MAX_ADDR)
- return RSP_ERROR;
-
- // wait for eeprom
- EEPROM_READY();
-
- for(i = 0; i < length; i++)
- {
- eeprom_write_byte ((uint8_t*) addr++, buf[i]);
-
- //EEAR = addr++;
- //EEDR = buf[i];
-
- //EECR |= (1 << EEMWE);
- //EECR |= (1 << EEWE);
- }
-
- eeprom_read_bytes(addr, buf, length);
-
- return RSP_OK;
-}