Tanish25
2 years ago
39 changed files with 730 additions and 97 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,57 +0,0 @@ |
|||
//GPIO- Input Configuration
|
|||
|
|||
|
|||
#include <avr/io.h> |
|||
#define F_CPU 16000000//16MHz
|
|||
#include <util/delay.h> |
|||
|
|||
int main(void) |
|||
{ |
|||
//pin 37-port C0 ; C7- pin 30
|
|||
DDRC = 0xff;//port C direction: output
|
|||
DDRA = 0xff;//port A direction: output
|
|||
DDRB = 0x00;//pin 10-13: Port B4 to B7 //direction: input
|
|||
//PINB = 0x00;//clearing PINB register
|
|||
//PORTA = PINB;
|
|||
//while(1);
|
|||
|
|||
//enabling pull-up resistors//use=?//default output when pull-up enabled=high
|
|||
PORTB = 0xff; |
|||
//PORTC = 0xff;
|
|||
//PORTB=0x00;//disabling pull-up resistors?//does it help or not?
|
|||
while(1) |
|||
{ |
|||
PORTA = PINB;//PortA= pin 22-29
|
|||
if(PINB==0xFF) |
|||
{ |
|||
PORTC = 0x01; |
|||
_delay_ms(5); |
|||
PORTC = 0x00; |
|||
_delay_ms(5); |
|||
}//f=100Hz
|
|||
else if(PINB==0x00) |
|||
{ |
|||
PORTC = 0x01; |
|||
_delay_ms(10); |
|||
PORTC = 0x00; |
|||
_delay_ms(10); |
|||
}//f=50Hz
|
|||
/*else if(PINB==0x10)
|
|||
{ |
|||
PORTC = 0x01; |
|||
_delay_ms(7); |
|||
PORTC = 0x00; |
|||
_delay_ms(7); |
|||
}//f=approx 75Hz
|
|||
else if(PINB==0x20) |
|||
{ |
|||
PORTC = 0x01; |
|||
_delay_ms(20); |
|||
PORTC = 0x00; |
|||
_delay_ms(20); |
|||
}//f=25Hz
|
|||
*/ |
|||
} |
|||
|
|||
|
|||
} |
Binary file not shown.
@ -0,0 +1,14 @@ |
|||
#include <avr/io.h> |
|||
#define F_CPU 16000000//16MHz
|
|||
#include <util/delay.h> |
|||
|
|||
int main(void) |
|||
{ |
|||
DDRL &= 0xfe;//port L direction: input; pin 49
|
|||
PORTL |= 0x01;//L01 PU resistor activated
|
|||
DDRC |= 0x01;//pin 37: pin C7 //direction: output
|
|||
while(1) |
|||
{ |
|||
PORTC = (PINL &= 0x01); |
|||
} |
|||
} |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,106 @@ |
|||
# simple AVR Makefile
|
|||
#
|
|||
# written by michael cousins (http://github.com/mcous)
|
|||
# released to the public domain
|
|||
|
|||
# Makefile
|
|||
#
|
|||
# targets:
|
|||
# all: compiles the source code
|
|||
# test: tests the isp connection to the mcu
|
|||
# flash: writes compiled hex file to the mcu's flash memory
|
|||
# fuse: writes the fuse bytes to the MCU
|
|||
# disasm: disassembles the code for debugging
|
|||
# clean: removes all .hex, .elf, and .o files in the source code and library directories
|
|||
|
|||
# parameters (change this stuff accordingly)
|
|||
# project name
|
|||
PRJ = main |
|||
# avr mcu
|
|||
MCU = atmega2560 |
|||
# mcu clock frequency
|
|||
CLK = 16000000 |
|||
# avr programmer (and port if necessary)
|
|||
# e.g. PRG = usbtiny -or- PRG = arduino -P /dev/tty.usbmodem411
|
|||
PRG = wiring -P /dev/ttyACM0 |
|||
# fuse values for avr: low, high, and extended
|
|||
# these values are from an Arduino Uno (ATMega328P)
|
|||
# see http://www.engbedded.com/fusecalc/ for other MCUs and options
|
|||
LFU = 0xFF |
|||
HFU = 0xD0 |
|||
EFU = 0xFD |
|||
# program source files (not including external libraries)
|
|||
SRC = $(PRJ).c |
|||
# where to look for external libraries (consisting of .c/.cpp files and .h files)
|
|||
# e.g. EXT = ../../EyeToSee ../../YouSART
|
|||
EXT = |
|||
|
|||
|
|||
#################################################################################################
|
|||
# \/ stuff nobody needs to worry about until such time that worrying about it is appropriate \/ #
|
|||
#################################################################################################
|
|||
|
|||
# include path
|
|||
INCLUDE := $(foreach dir, $(EXT), -I$(dir)) |
|||
# c flags
|
|||
CFLAGS = -Wall -Os -DF_CPU=$(CLK) -mmcu=$(MCU) $(INCLUDE) |
|||
# any aditional flags for c++
|
|||
CPPFLAGS = |
|||
|
|||
# executables
|
|||
AVRDUDE = avrdude -C /usr/share/arduino/hardware/tools/avrdude.conf -c $(PRG) -p $(MCU) -b 115200 -D |
|||
OBJCOPY = avr-objcopy |
|||
OBJDUMP = avr-objdump |
|||
SIZE = avr-size --format=avr --mcu=$(MCU) |
|||
CC = avr-gcc |
|||
|
|||
# generate list of objects
|
|||
CFILES = $(filter %.c, $(SRC)) |
|||
EXTC := $(foreach dir, $(EXT), $(wildcard $(dir)/*.c)) |
|||
CPPFILES = $(filter %.cpp, $(SRC)) |
|||
EXTCPP := $(foreach dir, $(EXT), $(wildcard $(dir)/*.cpp)) |
|||
OBJ = $(CFILES:.c=.o) $(EXTC:.c=.o) $(CPPFILES:.cpp=.o) $(EXTCPP:.cpp=.o) |
|||
|
|||
# user targets
|
|||
# compile all files
|
|||
all: $(PRJ).hex |
|||
|
|||
# test programmer connectivity
|
|||
test: |
|||
$(AVRDUDE) -v |
|||
|
|||
# flash program to mcu
|
|||
flash: all |
|||
$(AVRDUDE) -U flash:w:$(PRJ).hex:i |
|||
|
|||
# write fuses to mcu
|
|||
fuse: |
|||
$(AVRDUDE) -U lfuse:w:$(LFU):m -U hfuse:w:$(HFU):m -U efuse:w:$(EFU):m |
|||
|
|||
# generate disassembly files for debugging
|
|||
disasm: $(PRJ).elf |
|||
$(OBJDUMP) -d $(PRJ).elf |
|||
|
|||
# remove compiled files
|
|||
clean: |
|||
rm -f *.hex *.elf *.o |
|||
$(foreach dir, $(EXT), rm -f $(dir)/*.o;) |
|||
|
|||
# other targets
|
|||
# objects from c files
|
|||
.c.o: |
|||
$(CC) $(CFLAGS) -c $< -o $@ |
|||
|
|||
# objects from c++ files
|
|||
.cpp.o: |
|||
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ |
|||
|
|||
# elf file
|
|||
$(PRJ).elf: $(OBJ) |
|||
$(CC) $(CFLAGS) -o $(PRJ).elf $(OBJ) |
|||
|
|||
# hex file
|
|||
$(PRJ).hex: $(PRJ).elf |
|||
rm -f $(PRJ).hex |
|||
$(OBJCOPY) -j .text -j .data -O ihex $(PRJ).elf $(PRJ).hex |
|||
$(SIZE) $(PRJ).elf |
@ -0,0 +1,387 @@ |
|||
#define F_CPU 16000000//16Mhz
|
|||
#define MS_DELAY 1000 |
|||
#include <avr/io.h> |
|||
#include <util/delay.h> |
|||
int main(void) |
|||
{ |
|||
DDRB = 0xFF;//Port B set as output
|
|||
//DDRB |= (1 <<3);//Port B(0:3) set as output
|
|||
uint16_t testArray[360]={0x80, |
|||
0x82, |
|||
0x84, |
|||
0x86, |
|||
0x88, |
|||
0x8b, |
|||
0x8d, |
|||
0x8f, |
|||
0x91, |
|||
0x93, |
|||
0x96, |
|||
0x98, |
|||
0x9a, |
|||
0x9c, |
|||
0x9e, |
|||
0xa0, |
|||
0xa3, |
|||
0xa5, |
|||
0xa7, |
|||
0xa9, |
|||
0xab, |
|||
0xad, |
|||
0xaf, |
|||
0xb1, |
|||
0xb3, |
|||
0xb5, |
|||
0xb7, |
|||
0xb9, |
|||
0xbb, |
|||
0xbd, |
|||
0xbf, |
|||
0xc1, |
|||
0xc3, |
|||
0xc5, |
|||
0xc7, |
|||
0xc9, |
|||
0xca, |
|||
0xcc, |
|||
0xce, |
|||
0xd0, |
|||
0xd1, |
|||
0xd3, |
|||
0xd5, |
|||
0xd6, |
|||
0xd8, |
|||
0xda, |
|||
0xdb, |
|||
0xdd, |
|||
0xde, |
|||
0xe0, |
|||
0xe1, |
|||
0xe3, |
|||
0xe4, |
|||
0xe5, |
|||
0xe7, |
|||
0xe8, |
|||
0xe9, |
|||
0xea, |
|||
0xec, |
|||
0xed, |
|||
0xee, |
|||
0xef, |
|||
0xf0, |
|||
0xf1, |
|||
0xf2, |
|||
0xf3, |
|||
0xf4, |
|||
0xf5, |
|||
0xf6, |
|||
0xf7, |
|||
0xf7, |
|||
0xf8, |
|||
0xf9, |
|||
0xf9, |
|||
0xfa, |
|||
0xfb, |
|||
0xfb, |
|||
0xfc, |
|||
0xfc, |
|||
0xfd, |
|||
0xfd, |
|||
0xfd, |
|||
0xfe, |
|||
0xfe, |
|||
0xfe, |
|||
0xff, |
|||
0xff, |
|||
0xff, |
|||
0xff, |
|||
0xff, |
|||
0xff, |
|||
0xff, |
|||
0xff, |
|||
0xff, |
|||
0xff, |
|||
0xff, |
|||
0xfe, |
|||
0xfe, |
|||
0xfe, |
|||
0xfd, |
|||
0xfd, |
|||
0xfd, |
|||
0xfc, |
|||
0xfc, |
|||
0xfb, |
|||
0xfb, |
|||
0xfa, |
|||
0xf9, |
|||
0xf9, |
|||
0xf8, |
|||
0xf7, |
|||
0xf7, |
|||
0xf6, |
|||
0xf5, |
|||
0xf4, |
|||
0xf3, |
|||
0xf2, |
|||
0xf1, |
|||
0xf0, |
|||
0xef, |
|||
0xee, |
|||
0xed, |
|||
0xec, |
|||
0xea, |
|||
0xe9, |
|||
0xe8, |
|||
0xe7, |
|||
0xe5, |
|||
0xe4, |
|||
0xe3, |
|||
0xe1, |
|||
0xe0, |
|||
0xde, |
|||
0xdd, |
|||
0xdb, |
|||
0xda, |
|||
0xd8, |
|||
0xd6, |
|||
0xd5, |
|||
0xd3, |
|||
0xd1, |
|||
0xd0, |
|||
0xce, |
|||
0xcc, |
|||
0xca, |
|||
0xc9, |
|||
0xc7, |
|||
0xc5, |
|||
0xc3, |
|||
0xc1, |
|||
0xbf, |
|||
0xbd, |
|||
0xbb, |
|||
0xb9, |
|||
0xb7, |
|||
0xb5, |
|||
0xb3, |
|||
0xb1, |
|||
0xaf, |
|||
0xad, |
|||
0xab, |
|||
0xa9, |
|||
0xa7, |
|||
0xa5, |
|||
0xa3, |
|||
0xa0, |
|||
0x9e, |
|||
0x9c, |
|||
0x9a, |
|||
0x98, |
|||
0x96, |
|||
0x93, |
|||
0x91, |
|||
0x8f, |
|||
0x8d, |
|||
0x8b, |
|||
0x88, |
|||
0x86, |
|||
0x84, |
|||
0x82, |
|||
0x80, |
|||
0x7d, |
|||
0x7b, |
|||
0x79, |
|||
0x77, |
|||
0x74, |
|||
0x72, |
|||
0x70, |
|||
0x6e, |
|||
0x6c, |
|||
0x69, |
|||
0x67, |
|||
0x65, |
|||
0x63, |
|||
0x61, |
|||
0x5f, |
|||
0x5c, |
|||
0x5a, |
|||
0x58, |
|||
0x56, |
|||
0x54, |
|||
0x52, |
|||
0x50, |
|||
0x4e, |
|||
0x4c, |
|||
0x4a, |
|||
0x48, |
|||
0x46, |
|||
0x44, |
|||
0x42, |
|||
0x40, |
|||
0x3e, |
|||
0x3c, |
|||
0x3a, |
|||
0x38, |
|||
0x36, |
|||
0x35, |
|||
0x33, |
|||
0x31, |
|||
0x2f, |
|||
0x2e, |
|||
0x2c, |
|||
0x2a, |
|||
0x29, |
|||
0x27, |
|||
0x25, |
|||
0x24, |
|||
0x22, |
|||
0x21, |
|||
0x1f, |
|||
0x1e, |
|||
0x1c, |
|||
0x1b, |
|||
0x1a, |
|||
0x18, |
|||
0x17, |
|||
0x16, |
|||
0x15, |
|||
0x13, |
|||
0x12, |
|||
0x11, |
|||
0x10, |
|||
0xf, |
|||
0xe, |
|||
0xd, |
|||
0xc, |
|||
0xb, |
|||
0xa, |
|||
0x9, |
|||
0x8, |
|||
0x8, |
|||
0x7, |
|||
0x6, |
|||
0x6, |
|||
0x5, |
|||
0x4, |
|||
0x4, |
|||
0x3, |
|||
0x3, |
|||
0x2, |
|||
0x2, |
|||
0x2, |
|||
0x1, |
|||
0x1, |
|||
0x1, |
|||
0x0, |
|||
0x0, |
|||
0x0, |
|||
0x0, |
|||
0x0, |
|||
0x0, |
|||
0x0, |
|||
0x0, |
|||
0x0, |
|||
0x0, |
|||
0x0, |
|||
0x1, |
|||
0x1, |
|||
0x1, |
|||
0x2, |
|||
0x2, |
|||
0x2, |
|||
0x3, |
|||
0x3, |
|||
0x4, |
|||
0x4, |
|||
0x5, |
|||
0x6, |
|||
0x6, |
|||
0x7, |
|||
0x8, |
|||
0x8, |
|||
0x9, |
|||
0xa, |
|||
0xb, |
|||
0xc, |
|||
0xd, |
|||
0xe, |
|||
0xf, |
|||
0x10, |
|||
0x11, |
|||
0x12, |
|||
0x13, |
|||
0x15, |
|||
0x16, |
|||
0x17, |
|||
0x18, |
|||
0x1a, |
|||
0x1b, |
|||
0x1c, |
|||
0x1e, |
|||
0x1f, |
|||
0x21, |
|||
0x22, |
|||
0x24, |
|||
0x25, |
|||
0x27, |
|||
0x29, |
|||
0x2a, |
|||
0x2c, |
|||
0x2e, |
|||
0x2f, |
|||
0x31, |
|||
0x33, |
|||
0x35, |
|||
0x36, |
|||
0x38, |
|||
0x3a, |
|||
0x3c, |
|||
0x3e, |
|||
0x40, |
|||
0x42, |
|||
0x44, |
|||
0x46, |
|||
0x48, |
|||
0x4a, |
|||
0x4c, |
|||
0x4e, |
|||
0x50, |
|||
0x52, |
|||
0x54, |
|||
0x56, |
|||
0x58, |
|||
0x5a, |
|||
0x5c, |
|||
0x5f, |
|||
0x61, |
|||
0x63, |
|||
0x65, |
|||
0x67, |
|||
0x69, |
|||
0x6c, |
|||
0x6e, |
|||
0x70, |
|||
0x72, |
|||
0x74, |
|||
0x77, |
|||
0x79, |
|||
0x7b, |
|||
0x7d}; |
|||
while(1) |
|||
{ |
|||
for(int i=0;i<360;i++) |
|||
{ |
|||
OCR0A= testArray[i]; |
|||
TCCR0A = 0x83;//non-inverting pwm
|
|||
TCCR0B = 0x03;//prescaler = 64 for frequency to be approx 1kHz
|
|||
//output of pwm is at pin 13(OC0)
|
|||
_delay_ms(50); |
|||
} |
|||
//OCR0A= testArray[0];
|
|||
/*OCR0A = 0x80;
|
|||
TCCR0A = 0x83;//non-inverting pwm
|
|||
TCCR0B = 0x03; |
|||
*/ |
|||
} |
|||
|
|||
|
|||
} |
Binary file not shown.
@ -0,0 +1,70 @@ |
|||
:100000000C9472000C948B000C948B000C948B005D |
|||
:100010000C948B000C948B000C948B000C948B0034 |
|||
:100020000C948B000C948B000C948B000C948B0024 |
|||
:100030000C948B000C948B000C948B000C948B0014 |
|||
:100040000C948B000C948B000C948B000C948B0004 |
|||
:100050000C948B000C948B000C948B000C948B00F4 |
|||
:100060000C948B000C948B000C948B000C948B00E4 |
|||
:100070000C948B000C948B000C948B000C948B00D4 |
|||
:100080000C948B000C948B000C948B000C948B00C4 |
|||
:100090000C948B000C948B000C948B000C948B00B4 |
|||
:1000A0000C948B000C948B000C948B000C948B00A4 |
|||
:1000B0000C948B000C948B000C948B000C948B0094 |
|||
:1000C0000C948B000C948B000C948B000C948B0084 |
|||
:1000D0000C948B000C948B000C948B000C948B0074 |
|||
:1000E0000C948B0011241FBECFEFD1E2DEBFCDBF39 |
|||
:1000F00000E00CBF14E0A0E0B2E0EEE7F1E000E0C9 |
|||
:100100000BBF02C007900D92A03DB107D9F70E9426 |
|||
:100110008D000C94BD000C940000CF93DF93CDB7FD |
|||
:10012000DEB7C05DD2400FB6F894DEBF0FBECDBFC4 |
|||
:100130008FEF84B980ED92E0E0E0F2E0DE0111960D |
|||
:1001400001900D920197E1F7CE018F529D4F23E868 |
|||
:1001500033E0FE0131964081329647BD24BD35BD66 |
|||
:100160004FEF50E762E0415050406040E1F700C07F |
|||
:0E0170000000E817F90779F7ECCFF894FFCFFD |
|||
:10017E00800082008400860088008B008D008F0036 |
|||
:10018E0091009300960098009A009C009E00A0009B |
|||
:10019E00A300A500A700A900AB00AD00AF00B10001 |
|||
:1001AE00B300B500B700B900BB00BD00BF00C10071 |
|||
:1001BE00C300C500C700C900CA00CC00CE00D000E5 |
|||
:1001CE00D100D300D500D600D800DA00DB00DD0068 |
|||
:1001DE00DE00E000E100E300E400E500E700E800F7 |
|||
:1001EE00E900EA00EC00ED00EE00EF00F000F10097 |
|||
:1001FE00F200F300F400F500F600F700F700F80047 |
|||
:10020E00F900F900FA00FB00FB00FC00FC00FD0009 |
|||
:10021E00FD00FD00FE00FE00FE00FF00FF00FF00DF |
|||
:10022E00FF00FF00FF00FF00FF00FF00FF00FF00C8 |
|||
:10023E00FE00FE00FE00FD00FD00FD00FC00FC00C7 |
|||
:10024E00FB00FB00FA00F900F900F800F700F700D8 |
|||
:10025E00F600F500F400F300F200F100F000EF00FC |
|||
:10026E00EE00ED00EC00EA00E900E800E700E50032 |
|||
:10027E00E400E300E100E000DE00DD00DB00DA0078 |
|||
:10028E00D800D600D500D300D100D000CE00CC00CF |
|||
:10029E00CA00C900C700C500C300C100BF00BD0031 |
|||
:1002AE00BB00B900B700B500B300B100AF00AD00A0 |
|||
:1002BE00AB00A900A700A500A300A0009E009C0013 |
|||
:1002CE009A0098009600930091008F008D008B008D |
|||
:1002DE00880086008400820080007D007B0079000B |
|||
:1002EE0077007400720070006E006C006900670089 |
|||
:1002FE006500630061005F005C005A005800560004 |
|||
:10030E005400520050004E004C004A004800460077 |
|||
:10031E004400420040003E003C003A0038003600E7 |
|||
:10032E003500330031002F002E002C002A0029004A |
|||
:10033E00270025002400220021001F001E001C00A3 |
|||
:10034E001B001A00180017001600150013001200EB |
|||
:10035E00110010000F000E000D000C000B000A0023 |
|||
:10036E00090008000800070006000600050004004A |
|||
:10037E00040003000300020002000200010001005D |
|||
:10038E00010000000000000000000000000000005E |
|||
:10039E00000000000000000001000100010002004A |
|||
:1003AE000200020003000300040004000500060022 |
|||
:1003BE00060007000800080009000A000B000C00E8 |
|||
:1003CE000D000E000F00100011001200130015009A |
|||
:1003DE001600170018001A001B001C001E001F003C |
|||
:1003EE002100220024002500270029002A002C00CD |
|||
:1003FE002E002F00310033003500360038003A0051 |
|||
:10040E003C003E00400042004400460048004A00C6 |
|||
:10041E004C004E00500052005400560058005A0036 |
|||
:10042E005C005F00610063006500670069006C009E |
|||
:10043E006E00700072007400770079007B007D0002 |
|||
:00000001FF |
Binary file not shown.
@ -0,0 +1,106 @@ |
|||
# simple AVR Makefile
|
|||
#
|
|||
# written by michael cousins (http://github.com/mcous)
|
|||
# released to the public domain
|
|||
|
|||
# Makefile
|
|||
#
|
|||
# targets:
|
|||
# all: compiles the source code
|
|||
# test: tests the isp connection to the mcu
|
|||
# flash: writes compiled hex file to the mcu's flash memory
|
|||
# fuse: writes the fuse bytes to the MCU
|
|||
# disasm: disassembles the code for debugging
|
|||
# clean: removes all .hex, .elf, and .o files in the source code and library directories
|
|||
|
|||
# parameters (change this stuff accordingly)
|
|||
# project name
|
|||
PRJ = main |
|||
# avr mcu
|
|||
MCU = atmega2560 |
|||
# mcu clock frequency
|
|||
CLK = 16000000 |
|||
# avr programmer (and port if necessary)
|
|||
# e.g. PRG = usbtiny -or- PRG = arduino -P /dev/tty.usbmodem411
|
|||
PRG = wiring -P /dev/ttyACM0 |
|||
# fuse values for avr: low, high, and extended
|
|||
# these values are from an Arduino Uno (ATMega328P)
|
|||
# see http://www.engbedded.com/fusecalc/ for other MCUs and options
|
|||
LFU = 0xFF |
|||
HFU = 0xD0 |
|||
EFU = 0xFD |
|||
# program source files (not including external libraries)
|
|||
SRC = $(PRJ).c |
|||
# where to look for external libraries (consisting of .c/.cpp files and .h files)
|
|||
# e.g. EXT = ../../EyeToSee ../../YouSART
|
|||
EXT = |
|||
|
|||
|
|||
#################################################################################################
|
|||
# \/ stuff nobody needs to worry about until such time that worrying about it is appropriate \/ #
|
|||
#################################################################################################
|
|||
|
|||
# include path
|
|||
INCLUDE := $(foreach dir, $(EXT), -I$(dir)) |
|||
# c flags
|
|||
CFLAGS = -Wall -Os -DF_CPU=$(CLK) -mmcu=$(MCU) $(INCLUDE) |
|||
# any aditional flags for c++
|
|||
CPPFLAGS = |
|||
|
|||
# executables
|
|||
AVRDUDE = avrdude -C /usr/share/arduino/hardware/tools/avrdude.conf -c $(PRG) -p $(MCU) -b 115200 -D |
|||
OBJCOPY = avr-objcopy |
|||
OBJDUMP = avr-objdump |
|||
SIZE = avr-size --format=avr --mcu=$(MCU) |
|||
CC = avr-gcc |
|||
|
|||
# generate list of objects
|
|||
CFILES = $(filter %.c, $(SRC)) |
|||
EXTC := $(foreach dir, $(EXT), $(wildcard $(dir)/*.c)) |
|||
CPPFILES = $(filter %.cpp, $(SRC)) |
|||
EXTCPP := $(foreach dir, $(EXT), $(wildcard $(dir)/*.cpp)) |
|||
OBJ = $(CFILES:.c=.o) $(EXTC:.c=.o) $(CPPFILES:.cpp=.o) $(EXTCPP:.cpp=.o) |
|||
|
|||
# user targets
|
|||
# compile all files
|
|||
all: $(PRJ).hex |
|||
|
|||
# test programmer connectivity
|
|||
test: |
|||
$(AVRDUDE) -v |
|||
|
|||
# flash program to mcu
|
|||
flash: all |
|||
$(AVRDUDE) -U flash:w:$(PRJ).hex:i |
|||
|
|||
# write fuses to mcu
|
|||
fuse: |
|||
$(AVRDUDE) -U lfuse:w:$(LFU):m -U hfuse:w:$(HFU):m -U efuse:w:$(EFU):m |
|||
|
|||
# generate disassembly files for debugging
|
|||
disasm: $(PRJ).elf |
|||
$(OBJDUMP) -d $(PRJ).elf |
|||
|
|||
# remove compiled files
|
|||
clean: |
|||
rm -f *.hex *.elf *.o |
|||
$(foreach dir, $(EXT), rm -f $(dir)/*.o;) |
|||
|
|||
# other targets
|
|||
# objects from c files
|
|||
.c.o: |
|||
$(CC) $(CFLAGS) -c $< -o $@ |
|||
|
|||
# objects from c++ files
|
|||
.cpp.o: |
|||
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ |
|||
|
|||
# elf file
|
|||
$(PRJ).elf: $(OBJ) |
|||
$(CC) $(CFLAGS) -o $(PRJ).elf $(OBJ) |
|||
|
|||
# hex file
|
|||
$(PRJ).hex: $(PRJ).elf |
|||
rm -f $(PRJ).hex |
|||
$(OBJCOPY) -j .text -j .data -O ihex $(PRJ).elf $(PRJ).hex |
|||
$(SIZE) $(PRJ).elf |
Binary file not shown.
Loading…
Reference in new issue