Added board hardware driver support for the Adafruit U4 breakout board.
Fixed calculation of timer register reload values derived from F_CPU; must subtract one from the division result for the compare value to be correct. Change AVRISP-MKII rescue clock speed to 4MHz to ensure that a 125KHz ISP speed works regardless of the target's fuses (i.e. DIV8 set).
This commit is contained in:
parent
bac860b173
commit
0ce2950d81
14 changed files with 148 additions and 13 deletions
|
@ -105,9 +105,9 @@
|
|||
* </tr>
|
||||
* </table>
|
||||
*
|
||||
* In addition, the AVR's OCR1A pin will generate a .5MHz clock, to act as an external rescue device clock
|
||||
* if the fuses have been mis-set. To use the recovery clock, connect the OCR1A pin of the USB AVR to the target
|
||||
* AVR's XTAL1 pin, and set the ISP programming speed to 125KHz (note: other ISP speeds will not work correctly).
|
||||
* In addition, the AVR's OCR1A pin will generate a 4MHz clock, to act as an external rescue device clock if the
|
||||
* fuses have been mis-set. To use the recovery clock, connect the OCR1A pin of the USB AVR to the target AVR's
|
||||
* XTAL1 pin, and set the ISP programming speed to 125KHz (note: other ISP speeds will not work correctly).
|
||||
*
|
||||
* <b><sup>1</sup></b> <i>Optional, see \ref SSec_Options section - for USB AVRs with ADC modules only</i> \n
|
||||
* <b><sup>2</sup></b> <i>See AUX line related tokens in the \ref SSec_Options section</i>
|
||||
|
|
|
@ -196,10 +196,10 @@ void ISPTarget_ConfigureRescueClock(void)
|
|||
DDRB |= (1 << 5);
|
||||
#endif
|
||||
|
||||
/* Start Timer 1 to generate a .5MHz clock on the OCR1A pin */
|
||||
/* Start Timer 1 to generate a 4MHz clock on the OCR1A pin */
|
||||
TIMSK1 = 0;
|
||||
TCNT1 = 0;
|
||||
OCR1A = (F_CPU / 2 / 500000UL);
|
||||
OCR1A = ((F_CPU / 2 / 4000000UL) - 1);
|
||||
TCCR1A = (1 << COM1A0);
|
||||
TCCR1B = ((1 << WGM12) | (1 << CS10));
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ void V2Protocol_Init(void)
|
|||
#endif
|
||||
|
||||
/* Timeout timer initialization (10ms period) */
|
||||
OCR0A = ((F_CPU / 1024) / 100);
|
||||
OCR0A = (((F_CPU / 1024) / 100) - 1);
|
||||
TCCR0A = (1 << WGM01);
|
||||
TIMSK0 = (1 << OCIE0A);
|
||||
|
||||
|
|
|
@ -208,7 +208,7 @@ void SetupHardware(void)
|
|||
TWI_Init();
|
||||
|
||||
/* 500ms logging interval timer configuration */
|
||||
OCR1A = ((F_CPU / 1024) / 2);
|
||||
OCR1A = (((F_CPU / 1024) / 2) - 1);
|
||||
TCCR1B = (1 << WGM12) | (1 << CS12) | (1 << CS10);
|
||||
TIMSK1 = (1 << OCIE1A);
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ ISR(TIMER1_COMPA_vect)
|
|||
//Initialise the clock
|
||||
void clock_init()
|
||||
{
|
||||
OCR1A = ((F_CPU / 1024) / 100);
|
||||
OCR1A = (((F_CPU / 1024) / 100) - 1);
|
||||
TCCR1B = ((1 << WGM12) | (1 << CS12) | (1 << CS10));
|
||||
TIMSK1 = (1 << OCIE1A);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue