initial commit
commit
49e31df61f
@ -0,0 +1,59 @@
|
||||
TARGET = main
|
||||
SRCS := $(shell find -name '*.c')
|
||||
FILES = $(SRCS:%.c=%) #main uart avrIOhelper/io-helper #uart#hier alle c-Datein reinschreiben, trennung durch " " und ohne .c-Endung
|
||||
MCU = atmega32
|
||||
PROGC = m32
|
||||
CC = avr-gcc
|
||||
TOOL = stk500 -P /dev/ttyUSB0
|
||||
#TOOL = atmelice_isp
|
||||
#TOOL = avrispmkii
|
||||
#TOOL = usbasp-clone
|
||||
|
||||
BUILDDIR = Builds
|
||||
|
||||
DEFINES = -I . -IInternet/MQTT -I Internet/MQTT/MQTTPacket/src -I Ethernet/W5500 -I Ethernet -DF_CPU=16000000UL -D_WIZCHIP_=W5100
|
||||
|
||||
CFLAGS =-mmcu=$(MCU) -O2 -Wall -Wpedantic $(DEFINES) -std=c99 -ffunction-sections -fdata-sections
|
||||
LDFLAGS =-mmcu=$(MCU) -Wl,--gc-sections
|
||||
|
||||
LDFILES = $(foreach FILE,$(FILES),$(BUILDDIR)/$(FILE).o)
|
||||
|
||||
all: clean $(BUILDDIR)/$(TARGET).elf
|
||||
|
||||
$(BUILDDIR)/%.o: %.c
|
||||
mkdir -p $(dir $@)
|
||||
$(CC) $(CFLAGS) -c $< -o $(BUILDDIR)/$*.o
|
||||
|
||||
$(BUILDDIR)/$(TARGET).elf: $(LDFILES)
|
||||
mkdir -p $(dir $@)
|
||||
$(CC) $(LDFLAGS) $(LDFILES) -o $(BUILDDIR)/$(TARGET).elf
|
||||
|
||||
$(BUILDDIR)/$(TARGET).hex : $(BUILDDIR)/$(TARGET).elf
|
||||
avr-objcopy -j .data -j .text -O ihex $< $@
|
||||
|
||||
fuse:
|
||||
avrdude -p $(PROGC) -c $(TOOL) -U lfuse:w:0xE8:m -U hfuse:w:0xD1:m
|
||||
|
||||
load: $(BUILDDIR)/$(TARGET).hex
|
||||
avrdude -p $(PROGC) -c $(TOOL) -U flash:w:$(BUILDDIR)/$(TARGET).hex -v -B 4MHz
|
||||
|
||||
program: clean load
|
||||
|
||||
reset:
|
||||
avrdude -p $(PROGC) -c $(TOOL)
|
||||
|
||||
size: $(BUILDDIR)/$(TARGET).elf
|
||||
avr-size -C --mcu=$(MCU) $(BUILDDIR)/$(TARGET).elf
|
||||
|
||||
.PHONY=clean
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)
|
||||
|
||||
|
||||
#Fuse m1284p external Osz. Long startuptime
|
||||
# avrdude -c usbasp-clone -p m1284p -U lfuse:w:0xff:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m
|
||||
|
||||
#Fuse m1284p internal Osz. Long startuptime
|
||||
# avrdude -c usbasp-clone -p m1284p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m
|
||||
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
-D
|
||||
__AVR_ATmega32__
|
||||
-D
|
||||
F_CPU=16000000UL
|
||||
-D
|
||||
_WIZCHIP_=W5100
|
||||
-I
|
||||
/usr/lib/avr/include
|
||||
-I
|
||||
Internet
|
||||
-I
|
||||
Internet/MQTT
|
||||
-I
|
||||
Internet/MQTT/MQTTPacket/src
|
||||
-I
|
||||
Ethernet
|
||||
-I
|
||||
Ethernet/W5500
|
||||
@ -0,0 +1,62 @@
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <stdint.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
uint8_t font[] = {
|
||||
0xEE,
|
||||
0x82,
|
||||
0xDC,
|
||||
0xD6,
|
||||
0xB2,
|
||||
0x76,
|
||||
0x7E,
|
||||
0xC2,
|
||||
0xFE,
|
||||
0xF6,
|
||||
};
|
||||
|
||||
uint8_t display[4];
|
||||
|
||||
void timer0_init()
|
||||
{
|
||||
TCCR0 = (1<<WGM01); //TIMER0 SET-UP: CTC MODE
|
||||
TCCR0 = (1<<CS01)|(1<<CS00); // PS 1:64
|
||||
OCR0 = 249; // 1ms reach for clear (16mz:64=>250kHz:250-=>1kHz)
|
||||
TIMSK |= 1<<OCIE0; //IRQ on TIMER0 output compareA
|
||||
}
|
||||
|
||||
int main(void){
|
||||
DDRB |= _BV(3) | _BV(2) | _BV(1) | _BV(0);
|
||||
DDRD = 0xFC;
|
||||
DDRA = 0x03 << 4;
|
||||
DDRC = 0xFE;
|
||||
|
||||
display[3] = font[1];
|
||||
display[2] = font[3];
|
||||
display[1] = font[3];
|
||||
display[0] = font[7];
|
||||
|
||||
timer0_init();
|
||||
sei();
|
||||
|
||||
while(1){
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ISR(TIMER0_COMP_vect)
|
||||
{
|
||||
if(PORTB & 0x01){
|
||||
PORTB = 1<<1 | 1<<3;
|
||||
PORTD = display[3] & 0xFC;
|
||||
PORTA = (display[3] & 0x03) << 4;
|
||||
PORTC = display[1];
|
||||
}
|
||||
else{
|
||||
PORTB = 1<<0 | 1<<2;
|
||||
PORTD = display[2] & 0xFC;
|
||||
PORTA = (display[2] & 0x03) << 4;
|
||||
PORTC = display[0];
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Loading…
Reference in New Issue