diff --git a/Makefile b/Makefile index 7fd3702..ccdc80e 100644 --- a/Makefile +++ b/Makefile @@ -3,13 +3,16 @@ OBJ = main.o MCU_TARGET = atmega32 OPTIMIZE = -Os +#AVRDUDE_PROG = -c avr910 -b 115200 -P /dev/ttyUSB2 +AVRDUDE_PROG = -c dragon_isp -P usb + ifeq ($(MCU_TARGET), atmega32) # hfuse = 0x?A (2k bootloader) BOOTLOADER_START=0x7800 AVRDUDE_MCU=m32 endif -DEFS = -DBOOTLOADER_START=$(BOOTLOADER_START) -DOSCCAL_VALUE=0xAA +DEFS = -DBOOTLOADER_START=$(BOOTLOADER_START) -DOSCCAL_VALUE=0xA8 -DOSCCAL_CHECK=0 -DMPM_ADDRESS=0x11 LIBS = # Override is only needed by avr-lib build system. @@ -50,7 +53,14 @@ bin: $(PRG).bin $(OBJCOPY) -j .text -j .data -O binary $< $@ install: text - avrdude -c dragon_isp -P usb -p $(AVRDUDE_MCU) -V -U flash:w:$(PRG).hex + avrdude $(AVRDUDE_PROG) -p $(AVRDUDE_MCU) -V -U flash:w:$(PRG).hex + +fuses: + avrdude $(AVRDUDE_PROG) -p $(AVRDUDE_MCU) -U hfuse:w:0xda:m + avrdude $(AVRDUDE_PROG) -p $(AVRDUDE_MCU) -U lfuse:w:0xd4:m + +osccal: + avrdude $(AVRDUDE_PROG) -p $(AVRDUDE_MCU) -U calibration:r:-:h reset: - avrdude -c dragon_isp -P usb -p $(AVRDUDE_MCU) + avrdude $(AVRDUDE_PROG) -p $(AVRDUDE_MCU) diff --git a/main.c b/main.c index 263e937..af0900a 100644 --- a/main.c +++ b/main.c @@ -46,7 +46,9 @@ #define LED PORTD3 #define BAUDRATE 115200 +#ifndef MPM_ADDRESS #define MPM_ADDRESS 0x11 +#endif /* MPM_ADDRESS */ #define EEPROM_SUPPORT 1 @@ -438,7 +440,7 @@ ISR(TIMER0_OVF_vect) } } -#if 0 +#if (OSCCAL_CHECK) static void uart_send(char *p) { while (*p) { @@ -446,7 +448,7 @@ static void uart_send(char *p) UDR = *p++; } } -#endif +#endif /* (OSCCAL_CHECK) */ static void (*jump_to_app)(void) __attribute__ ((noreturn)) = 0x0000; @@ -481,9 +483,11 @@ int main(void) /* store MPM address in TWI register for application */ TWAR = MPM_ADDRESS; +#if (OSCCAL_CHECK) /* 11.354ms for 109 bits @9600 */ /* 946.18us for 109 bits @115200 */ -// uart_send("1234567890"); + uart_send("1234567890"); +#endif /* (OSCCAL_CHECK) */ sei();