X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/43b9d552bb0a32c5cd5f9fa72a8cb3c871ad5ef3..1e0c3bc69a75a835931f5943ce7157f6af97b15f:/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c index 7e8695503..2158f4de2 100644 --- a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c +++ b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c @@ -41,7 +41,7 @@ * * \hideinitializer */ -static uint8_t SPIMaskFromSCKDuration[] PROGMEM = +static const uint8_t SPIMaskFromSCKDuration[] PROGMEM = { #if (F_CPU == 8000000) SPI_SPEED_FCPU_DIV_2, // AVRStudio = 8MHz SPI, Actual = 4MHz SPI @@ -68,7 +68,7 @@ static uint8_t SPIMaskFromSCKDuration[] PROGMEM = * * \hideinitializer */ -static uint16_t TimerCompareFromSCKDuration[] PROGMEM = +static const uint16_t TimerCompareFromSCKDuration[] PROGMEM = { TIMER_COMP(96386), TIMER_COMP(89888), TIMER_COMP(84211), TIMER_COMP(79208), TIMER_COMP(74767), TIMER_COMP(70797), TIMER_COMP(67227), TIMER_COMP(64000), TIMER_COMP(61069), TIMER_COMP(58395), @@ -108,10 +108,10 @@ static uint16_t TimerCompareFromSCKDuration[] PROGMEM = bool HardwareSPIMode = true; /** Software SPI data register for sending and receiving */ -volatile uint8_t SoftSPI_Data; +static volatile uint8_t SoftSPI_Data; /** Number of bits left to transfer in the software SPI driver */ -volatile uint8_t SoftSPI_BitsRemaining; +static volatile uint8_t SoftSPI_BitsRemaining; /** ISR to handle software SPI transmission and reception */ @@ -140,7 +140,7 @@ ISR(TIMER1_COMPA_vect, ISR_BLOCK) PINB |= (1 << 1); } -/** Initialises the appropriate SPI driver (hardware or software, depending on the selected ISP speed) ready for +/** Initializes the appropriate SPI driver (hardware or software, depending on the selected ISP speed) ready for * communication with the attached target. */ void ISPTarget_EnableTargetISP(void) @@ -161,7 +161,7 @@ void ISPTarget_EnableTargetISP(void) DDRB |= ((1 << 1) | (1 << 2)); PORTB |= ((1 << 0) | (1 << 3)); - ISPTarget_ConfigureSoftwareISP(SCKDuration); + ISPTarget_ConfigureSoftwareSPI(SCKDuration); } } @@ -185,8 +185,8 @@ void ISPTarget_DisableTargetISP(void) } } -/** Configures the AVR to produce a .5MHz rescue clock out of the OCR1A pin of the AVR, so - * that it can be fed into the XTAL1 pin of an AVR whose fuses have been misconfigured for +/** Configures the AVR to produce a 4MHz rescue clock out of the OCR1A pin of the AVR, so + * that it can be fed into the XTAL1 pin of an AVR whose fuses have been mis-configured for * an external clock rather than a crystal. When used, the ISP speed must be 125KHz for this * functionality to work correctly. */ @@ -217,14 +217,14 @@ void ISPTarget_ConfigureRescueClock(void) #endif } -/** Configures the AVR's timer ready to produce software ISP for the slower ISP speeds that +/** Configures the AVR's timer ready to produce software SPI for the slower ISP speeds that * cannot be obtained when using the AVR's hardware SPI module. * * \param[in] SCKDuration Duration of the desired software ISP SCK clock */ -void ISPTarget_ConfigureSoftwareISP(const uint8_t SCKDuration) +void ISPTarget_ConfigureSoftwareSPI(const uint8_t SCKDuration) { - /* Configure Timer 1 for software ISP using the specified SCK duration */ + /* Configure Timer 1 for software SPI using the specified SCK duration */ TIMSK1 = (1 << OCIE1A); TCNT1 = 0; OCR1A = pgm_read_word(&TimerCompareFromSCKDuration[SCKDuration - sizeof(SPIMaskFromSCKDuration)]);