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)
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:
all: firmware.hex

@ -2,8 +2,8 @@
#define __DISPLAY_H
#include <avr/pgmspace.h>
#include <stdio.h>
#include "lcd/lcd.h"
#include "main.h"
#define LCD_CHAR_HALFBAR 0x01
@ -11,7 +11,7 @@
#define LCD_CHAR_DEGREE 0x03
#define LCD_CHAR_BLANK 0x20
extern uint8_t newThermoData1;
extern uint8_t newThermoData;
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"
uint8_t newThermoData = 1;

@ -11,23 +11,8 @@
#ifndef __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
#include "softtimer.h"
extern uint8_t newThermoData;
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 "spi.h"
#include "spi_proto.h"
#include "usb.h"

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

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

@ -2,7 +2,7 @@ include ../Makefile.inc
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:
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