diff --git a/software/AVR8/Makefile b/software/AVR8/Makefile index e77cded..4db3589 100644 --- a/software/AVR8/Makefile +++ b/software/AVR8/Makefile @@ -14,7 +14,8 @@ OBJCOPY = avr-objcopy OBJDUMP = avr-objdump SIZE = avr-size -OBJ = $(SRC:%.c=$(OBJDIR)/$(AVRMCU)/%.o) +SRC_TMP = $(subst ../,,$(SRC)) +OBJ = $(SRC_TMP:%.c=$(OBJDIR)/$(AVRMCU)/%.o) CFLAGS = -I ../sss7core/ -Os -Wall -Wstrict-prototypes CFLAGS += -ffunction-sections -fdata-sections @@ -27,8 +28,8 @@ all: start $(OBJDIR)/$(AVRMCU)/$(TARGET).hex size @echo ":: Done !" start: - @echo "AS5043 demo version $(VERSION)" - @echo "==============================" + @echo "SSS7 AVR port $(VERSION)" + @echo "========================" @echo ":: Building for $(AVRMCU)" @echo ":: MCU operating frequency is $(F_CPU)Hz" @@ -36,6 +37,10 @@ $(OBJDIR)/$(AVRMCU)/%.o : %.c $(HEADERS) Makefile @mkdir -p $$(dirname $@) $(CC) $(CFLAGS) -c $< -o $@ +$(OBJDIR)/$(AVRMCU)/sss7core/%.o : ../sss7core/%.c $(HEADERS) Makefile + @mkdir -p $$(dirname $@) + $(CC) $(CFLAGS) -c $< -o $@ + $(OBJDIR)/$(AVRMCU)/$(TARGET).elf : $(OBJ) $(CC) $(LDFLAGS) $+ -o $@ diff --git a/software/AVR8/main.c b/software/AVR8/main.c index 2ef2ec3..d6c3ecc 100644 --- a/software/AVR8/main.c +++ b/software/AVR8/main.c @@ -4,6 +4,7 @@ #include #include "uart.h" +#include "timer.h" #include "sss7.h" @@ -11,37 +12,37 @@ int main(void) { -uint8_t msg[SSS7_PAYLOAD_SIZE]; -memset(msg, 0, SSS7_PAYLOAD_SIZE); -msg[0] = 'H'; -msg[1] = 'e'; -msg[2] = 'l'; -msg[3] = 'l'; -msg[4] = 'o'; -msg[5] = ' '; -msg[6] = 'W'; -msg[7] = 'o'; -msg[8] = 'r'; -msg[9] = 'l'; -msg[10] = 'd'; + uint8_t msg[SSS7_PAYLOAD_SIZE]; + memset(msg, 0, SSS7_PAYLOAD_SIZE); + msg[0] = 'H'; + msg[1] = 'e'; + msg[2] = 'l'; + msg[3] = 'l'; + msg[4] = 'o'; + msg[5] = ' '; + msg[6] = 'W'; + msg[7] = 'o'; + msg[8] = 'r'; + msg[9] = 'l'; + msg[10] = 'd'; -uart_init(); -sss7_init(); -sei(); + uart_init(); + timer_init(); + sss7_init(); + sei(); -while(1) { + while(1) { - while(!sss7_can_send()); - sss7_send(msg); - while(!sss7_can_send()); - if(sss7_send_failed()) { - PORTB ^= (1 << PB2); + while(!sss7_can_send()); + sss7_send(msg); + while(!sss7_can_send()); + if(sss7_send_failed()) { + PORTB ^= (1 << PB2); + } + + _delay_ms(1000); } - _delay_ms(100); -} - - } diff --git a/software/testutils/generate_timeout.py b/software/testutils/generate_timeout.py new file mode 100644 index 0000000..b8a5634 --- /dev/null +++ b/software/testutils/generate_timeout.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python2 + +import sys +import serial + + +def send_byte(ser, byte): + ser.reset_input_buffer() + ser.write(byte) + read_byte = ser.read() + if read_byte != byte: + print "Written %s read %s" % (hex(ord(byte)), hex(ord(read_byte))) + sys.exit(-1) + + +def main(): + if len(sys.argv) != 2: + print "Usage %s " % (sys.argv[0]) + sys.exit(-1) + + ser = serial.Serial(sys.argv[1], 9600, timeout=0.40) + + send_byte(ser, chr(0xAA)) + send_byte(ser, chr(0xFE)) + + for byte in "Unfinished": + send_byte(ser, byte) + + + +if __name__ == '__main__': + main()