|
73 | 73 |
|
74 | 74 | /* the current avr-libc eeprom functions do not support the ATmega168 */
|
75 | 75 | /* own eeprom write/read functions are used instead */
|
76 |
| -#if !defined(__AVR_ATmega168__) || !defined(__AVR_ATmega328P__) |
| 76 | +#if !defined(__AVR_ATmega168__) || !defined(__AVR_ATmega328P__) || !defined(__AVR_ATmega328__) |
77 | 77 | #include <avr/eeprom.h>
|
78 | 78 | #endif
|
79 | 79 |
|
|
202 | 202 | #define SIG3 0x0F
|
203 | 203 | #define PAGE_SIZE 0x40U //64 words
|
204 | 204 |
|
| 205 | +#elif defined __AVR_ATmega328__ |
| 206 | +#define SIG2 0x95 |
| 207 | +#define SIG3 0x14 |
| 208 | +#define PAGE_SIZE 0x40U //64 words |
| 209 | + |
205 | 210 | #elif defined __AVR_ATmega162__
|
206 | 211 | #define SIG2 0x94
|
207 | 212 | #define SIG3 0x04
|
@@ -367,7 +372,7 @@ int main(void)
|
367 | 372 | UBRRHI = (F_CPU/(BAUD_RATE*16L)-1) >> 8;
|
368 | 373 | UCSRA = 0x00;
|
369 | 374 | UCSRB = _BV(TXEN)|_BV(RXEN);
|
370 |
| -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) |
| 375 | +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined (__AVR_ATmega328__) |
371 | 376 |
|
372 | 377 | #ifdef DOUBLE_SPEED
|
373 | 378 | UCSR0A = (1<<U2X0); //Double speed mode USART0
|
@@ -556,7 +561,7 @@ int main(void)
|
556 | 561 | if (flags.eeprom) { //Write to EEPROM one byte at a time
|
557 | 562 | address.word <<= 1;
|
558 | 563 | for(w=0;w<length.word;w++) {
|
559 |
| -#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) |
| 564 | +#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) |
560 | 565 | while(EECR & (1<<EEPE));
|
561 | 566 | EEAR = (uint16_t)(void *)address.word;
|
562 | 567 | EEDR = buff[w];
|
@@ -677,7 +682,7 @@ int main(void)
|
677 | 682 | "rjmp write_page \n\t"
|
678 | 683 | "block_done: \n\t"
|
679 | 684 | "clr __zero_reg__ \n\t" //restore zero register
|
680 |
| -#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ || __AVR_ATmega128__ || __AVR_ATmega1280__ || __AVR_ATmega1281__ |
| 685 | +#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ || __AVR_ATmega328__ || __AVR_ATmega128__ || __AVR_ATmega1280__ || __AVR_ATmega1281__ |
681 | 686 | : "=m" (SPMCSR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31"
|
682 | 687 | #else
|
683 | 688 | : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31"
|
@@ -710,7 +715,7 @@ int main(void)
|
710 | 715 | putch(0x14);
|
711 | 716 | for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay
|
712 | 717 | if (flags.eeprom) { // Byte access EEPROM read
|
713 |
| -#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) |
| 718 | +#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) |
714 | 719 | while(EECR & (1<<EEPE));
|
715 | 720 | EEAR = (uint16_t)(void *)address.word;
|
716 | 721 | EECR |= (1<<EERE);
|
@@ -926,7 +931,7 @@ void putch(char ch)
|
926 | 931 | while (!(UCSR1A & _BV(UDRE1)));
|
927 | 932 | UDR1 = ch;
|
928 | 933 | }
|
929 |
| -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) |
| 934 | +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined (__AVR_ATmega328__) |
930 | 935 | while (!(UCSR0A & _BV(UDRE0)));
|
931 | 936 | UDR0 = ch;
|
932 | 937 | #else
|
@@ -964,7 +969,7 @@ char getch(void)
|
964 | 969 | return UDR1;
|
965 | 970 | }
|
966 | 971 | return 0;
|
967 |
| -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) |
| 972 | +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined (__AVR_ATmega328__) |
968 | 973 | uint32_t count = 0;
|
969 | 974 | while(!(UCSR0A & _BV(RXC0))){
|
970 | 975 | /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/
|
@@ -1001,7 +1006,7 @@ void getNch(uint8_t count)
|
1001 | 1006 | while(!(UCSR1A & _BV(RXC1)));
|
1002 | 1007 | UDR1;
|
1003 | 1008 | }
|
1004 |
| -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) |
| 1009 | +#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined (__AVR_ATmega328__) |
1005 | 1010 | getch();
|
1006 | 1011 | #else
|
1007 | 1012 | /* m8,16,32,169,8515,8535,163 */
|
|
0 commit comments