|
|
|
|
@ -2,6 +2,7 @@
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
#include <math.h>
|
|
|
|
|
#include <avr/interrupt.h>
|
|
|
|
|
#include <util/delay.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "main.h"
|
|
|
|
|
@ -16,7 +17,6 @@
|
|
|
|
|
|
|
|
|
|
uint8_t readbuf[5];
|
|
|
|
|
uint8_t writebuf[5];
|
|
|
|
|
uint8_t writebuf2[5] = {2, 4, 6, 0x12, 5};
|
|
|
|
|
uint8_t pos;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -84,12 +84,15 @@ void spi_init(){
|
|
|
|
|
void spi_mst_start_packet(){
|
|
|
|
|
#ifdef SPI_MASTER
|
|
|
|
|
SPI_SSOUT &= ~(_BV(SPI_SS_PIN));
|
|
|
|
|
_delay_us(1e6/SPI_BAUDRATE);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void spi_mst_end_packet(){
|
|
|
|
|
#ifdef SPI_MASTER
|
|
|
|
|
_delay_us(1e6/SPI_BAUDRATE);
|
|
|
|
|
SPI_SSOUT |= _BV(SPI_SS_PIN);
|
|
|
|
|
_delay_us(1e6/SPI_BAUDRATE);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -125,7 +128,7 @@ void spi_mst_write_read(uint8_t len, uint8_t *data){
|
|
|
|
|
|
|
|
|
|
void spi_sla_handle_packet(){
|
|
|
|
|
// TODO: make slave not hangup in case of partial read
|
|
|
|
|
uint8_t opcode, addr, do_write;
|
|
|
|
|
uint8_t opcode, addr;
|
|
|
|
|
uint16_t data, newdata;
|
|
|
|
|
writebuf[0] = 0; // generate invalid replies, so no inconsistent packets
|
|
|
|
|
// are sent.
|
|
|
|
|
|