Poppin' more cruft out the repo 8)
This commit is contained in:
parent
85404e606b
commit
e618aa68cd
8 changed files with 27 additions and 73 deletions
|
@ -19,7 +19,7 @@ HEADERS_LOCAL =
|
||||||
HEADERS_BUILD = $(HEADERS_LOCAL) \
|
HEADERS_BUILD = $(HEADERS_LOCAL) \
|
||||||
$(addprefix $(INCLUDE_PATH)/$(HEADER_SUBDIR)/,$(HEADERS))
|
$(addprefix $(INCLUDE_PATH)/$(HEADER_SUBDIR)/,$(HEADERS))
|
||||||
|
|
||||||
HEADERS = avr/buffer.h avr/uart.h clock.h command.h link.h
|
HEADERS = avr/buffer.h avr/uart.h link.h
|
||||||
OBJS = main.o uart.o
|
OBJS = main.o uart.o
|
||||||
|
|
||||||
IMAGE_NAME = tabby
|
IMAGE_NAME = tabby
|
||||||
|
|
48
avr/main.c
48
avr/main.c
|
@ -4,10 +4,7 @@
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
#include <avr/sleep.h>
|
#include <avr/sleep.h>
|
||||||
|
|
||||||
#include <tabby/clock.h>
|
|
||||||
#include <tabby/command.h>
|
|
||||||
#include <tabby/printer.h>
|
#include <tabby/printer.h>
|
||||||
|
|
||||||
#include <tabby/avr/uart.h>
|
#include <tabby/avr/uart.h>
|
||||||
|
|
||||||
static volatile tabby_printer_packet header = {
|
static volatile tabby_printer_packet header = {
|
||||||
|
@ -23,93 +20,78 @@ static volatile uint16_t i = 0,
|
||||||
* SPI byte receipt interrupt vector
|
* SPI byte receipt interrupt vector
|
||||||
*/
|
*/
|
||||||
ISR(SPI_STC_vect) {
|
ISR(SPI_STC_vect) {
|
||||||
uint8_t value = SPDR;
|
uint8_t in = SPDR,
|
||||||
|
out = 0x00;
|
||||||
|
|
||||||
uart_putchar(value, NULL);
|
uart_putchar(in, NULL);
|
||||||
|
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 0: {
|
case 0: {
|
||||||
if (value == 0x88) {
|
if (in == 0x88) {
|
||||||
header.data[0] = value;
|
header.data[0] = in;
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
b = 0;
|
b = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
SPDR = 0;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 1: {
|
case 1: {
|
||||||
if (value == 0x33) {
|
if (in == 0x33) {
|
||||||
header.data[1] = value;
|
header.data[1] = in;
|
||||||
i++;
|
i++;
|
||||||
} else {
|
} else {
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
SPDR = 0;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 2: {
|
case 2: {
|
||||||
header.type = value;
|
header.type = in;
|
||||||
i++;
|
i++;
|
||||||
SPDR = 0;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 3: {
|
case 3: {
|
||||||
header.compression = value;
|
header.compression = in;
|
||||||
i++;
|
i++;
|
||||||
SPDR = 0;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 4: {
|
case 4: {
|
||||||
header.size = value;
|
header.size = in;
|
||||||
i++;
|
i++;
|
||||||
SPDR = 0;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 5: {
|
case 5: {
|
||||||
header.size |= value << 8;
|
header.size |= in << 8;
|
||||||
i++;
|
i++;
|
||||||
SPDR = 0;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default: {
|
default: {
|
||||||
if (b < header.size) {
|
if (b <= header.size) {
|
||||||
b++;
|
b++;
|
||||||
|
|
||||||
SPDR = 0;
|
|
||||||
} else if (b == header.size) {
|
|
||||||
b++;
|
|
||||||
|
|
||||||
SPDR = 0;
|
|
||||||
} else if (b == header.size + 1) {
|
} else if (b == header.size + 1) {
|
||||||
b++;
|
b++;
|
||||||
|
|
||||||
SPDR = 0x81;
|
out = 0x81;
|
||||||
} else if (b == header.size + 2) {
|
} else if (b == header.size + 2) {
|
||||||
b++;
|
b++;
|
||||||
|
|
||||||
SPDR = 0;
|
|
||||||
} else if (b == header.size + 3) {
|
} else if (b == header.size + 3) {
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
||||||
SPDR = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SPDR = out;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setup_clock_external() {
|
static void setup_clock_external() {
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <tabby/link.h>
|
#include <tabby/link.h>
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
#ifndef _TABBY_CLOCK_H
|
|
||||||
#define _TABBY_CLOCK_H
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
TABBY_CLOCK_SOURCE_INTERNAL = 0x01,
|
|
||||||
TABBY_CLOCK_SOURCE_EXTERNAL = 0x02
|
|
||||||
} tabby_clock_source;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
TABBY_CLOCK_SPEED_8192HZ = 0x01,
|
|
||||||
TABBY_CLOCK_SPEED_16384HZ = 0x02,
|
|
||||||
TABBY_CLOCK_SPEED_262144HZ = 0x03,
|
|
||||||
TABBY_CLOCK_SPEED_524288HZ = 0x04
|
|
||||||
} tabby_clock_speed;
|
|
||||||
|
|
||||||
#endif /* _TABBY_CLOCK_H */
|
|
|
@ -1,11 +0,0 @@
|
||||||
#ifndef _TABBY_COMMAND_H
|
|
||||||
#define _TABBY_COMMAND_H
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
TABBY_COMMAND_NONE = 0x00,
|
|
||||||
TABBY_COMMAND_SEND = 0x01,
|
|
||||||
TABBY_COMMAND_CLOCK_SOURCE = 0x02,
|
|
||||||
TABBY_COMMAND_CLOCK_SPEED = 0x03
|
|
||||||
} tabby_command;
|
|
||||||
|
|
||||||
#endif /* _TABBY_COMMAND_H */
|
|
|
@ -1,16 +1,6 @@
|
||||||
#ifndef _TABBY_LINK_H
|
#ifndef _TABBY_LINK_H
|
||||||
#define _TABBY_LINK_H
|
#define _TABBY_LINK_H
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <termios.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
|
|
||||||
#include <tabby/clock.h>
|
|
||||||
|
|
||||||
#define TABBY_LINK_BAUD B57600
|
#define TABBY_LINK_BAUD B57600
|
||||||
|
|
||||||
int tabby_link_open(const char *dev);
|
int tabby_link_open(const char *dev);
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <termios.h>
|
||||||
|
|
||||||
#include <tabby/link.h>
|
#include <tabby/link.h>
|
||||||
#include <tabby/command.h>
|
|
||||||
|
|
||||||
int tabby_link_open(const char *dev) {
|
int tabby_link_open(const char *dev) {
|
||||||
int fd;
|
int fd;
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <tabby/link.h>
|
#include <tabby/link.h>
|
||||||
|
|
Loading…
Add table
Reference in a new issue