fun multiuser include resolvedness fun

master
Paul Goeser 15 years ago
parent 48d3e1aa63
commit e2cb525cce

@ -3,7 +3,7 @@ include ../Makefile.inc
COMPILE = avr-gcc $(CFLAGS) $(DEFINES) COMPILE = avr-gcc $(CFLAGS) $(DEFINES)
OBJECTS = usbdrv/usbdrvasm.o usbdrv/usbdrv.o main.o display.o lcd/lcd.o usb.o softtimer.o spi.o spi_proto.o OBJECTS = usbdrv/usbdrvasm.o usbdrv/usbdrv.o main.o display.o lcd/lcd.o usb.o softtimer.o spi.o spi_proto.o spi_pointers.o
# symbolic targets: # symbolic targets:
all: firmware.hex all: firmware.hex

@ -2,8 +2,8 @@
#define __DISPLAY_H #define __DISPLAY_H
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#include <stdio.h>
#include "lcd/lcd.h" #include "lcd/lcd.h"
#include "main.h"
#define LCD_CHAR_HALFBAR 0x01 #define LCD_CHAR_HALFBAR 0x01
@ -11,7 +11,7 @@
#define LCD_CHAR_DEGREE 0x03 #define LCD_CHAR_DEGREE 0x03
#define LCD_CHAR_BLANK 0x20 #define LCD_CHAR_BLANK 0x20
extern uint8_t newThermoData1; extern uint8_t newThermoData;
extern uint16_t thermoData[]; extern uint16_t thermoData[];

@ -1,3 +1,19 @@
#include <stdint.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include <util/delay.h>
#include <util/atomic.h>
#include <stdio.h>
#include "usbdrv/usbdrv.h"
#include "display.h"
#include "spi.h"
#include "usb.h"
#include "softtimer.h"
#include "main.h" #include "main.h"
uint8_t newThermoData = 1; uint8_t newThermoData = 1;

@ -11,23 +11,8 @@
#ifndef __MAIN_H #ifndef __MAIN_H
#define __MAIN_H #define __MAIN_H
#include <stdint.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include <util/delay.h>
#include <util/atomic.h>
#include <stdio.h>
#include <usbdrv/usbdrv.h>
#include "display.h"
#include "spi.h"
#include "usb.h"
#define SOFTTIMERNUMS 4 #define SOFTTIMERNUMS 4
#include "softtimer.h"
extern uint8_t newThermoData; extern uint8_t newThermoData;
extern uint16_t thermoData[]; extern uint16_t thermoData[];

@ -0,0 +1,12 @@
// dummy so spi_proto can be shared
#include "spi_pointers.h"
uint16_t *spi_proto_globals8[] = { };
uint8_t *spi_proto_globals16[] = { };
funptr_t spi_proto_funcs[] = { };

@ -0,0 +1,16 @@
#ifndef __SPI_POINTERS_H
#define __SPI_POINTERS_H
// dummy-include so spi_proto can be shared
#include <stdint.h>
typedef void(*funptr_t)();
extern uint16_t *spi_proto_globals8[];
extern uint8_t *spi_proto_globals16[];
extern funptr_t spi_proto_funcs[];
#endif //__SPI_POINTERS_H

@ -1,5 +1,9 @@
#include <stdint.h>
#include "usbdrv/usbdrv.h"
#include "main.h" #include "main.h"
#include "spi.h"
#include "spi_proto.h" #include "spi_proto.h"
#include "usb.h" #include "usb.h"

@ -74,15 +74,17 @@ void spi_init(){
#ifdef SPI_MASTER
void spi_mst_start_packet(){ void spi_mst_start_packet(){
#ifdef SPI_MASTER
SPI_SSOUT &= ~(_BV(SPI_SS_PIN)); SPI_SSOUT &= ~(_BV(SPI_SS_PIN));
#endif
} }
void spi_mst_end_packet(){ void spi_mst_end_packet(){
#ifdef SPI_MASTER
SPI_SSOUT |= _BV(SPI_SS_PIN); SPI_SSOUT |= _BV(SPI_SS_PIN);
#endif
} }
#endif //SPI_MASTER
#define SPI_WAIT while(SPSR & _BV(SPIF)){;} #define SPI_WAIT while(SPSR & _BV(SPIF)){;}

@ -23,11 +23,12 @@ void call_func(uint8_t number);
/***** MASTER END *****/ /***** MASTER END *****/
/***** SLAVE *****/ /***** SLAVE *****/
typedef void(*funptr_t)(); /*
extern uint16_t *spi_proto_globals8[]; extern uint16_t *spi_proto_globals8[];
extern uint8_t *spi_proto_globals16[]; extern uint8_t *spi_proto_globals16[];
extern funptr_t spi_proto_funcs[]; extern funptr_t spi_proto_funcs[];
*/
#include "spi_pointers.h"
uint8_t spi_proto_needswrite(uint8_t opcode); uint8_t spi_proto_needswrite(uint8_t opcode);
uint16_t spi_proto_handlewrite(uint8_t opcode, uint8_t addr); uint16_t spi_proto_handlewrite(uint8_t opcode, uint8_t addr);

@ -2,7 +2,7 @@ include ../Makefile.inc
COMPILE = avr-gcc $(CFLAGS) $(DEFINES) COMPILE = avr-gcc $(CFLAGS) $(DEFINES)
OBJECTS = main.o mcp_adc.o i2c_simple.o softtimer.o spi_proto.o spi.o OBJECTS = main.o mcp_adc.o i2c_simple.o softtimer.o spi_proto.o spi.o spi_pointers.o
# symbolic targets: # symbolic targets:
all: firmware.hex all: firmware.hex

@ -0,0 +1,17 @@
#include "spi_pointers.h"
#include "main.h"
uint16_t *spi_proto_globals8[] = {
&foo
};
uint8_t *spi_proto_globals16[] = {
&bar
};
funptr_t spi_proto_funcs[] = {
&baz
};

@ -0,0 +1,15 @@
#ifndef __SPI_POINTERS_H
#define __SPI_POINTERS_H
#include <stdint.h>
typedef void(*funptr_t)();
extern uint16_t *spi_proto_globals8[];
extern uint8_t *spi_proto_globals16[];
extern funptr_t spi_proto_funcs[];
#endif //__SPI_POINTERS_H
Loading…
Cancel
Save