Added new CALLBACK_Audio_Device_GetSetInterfaceProperty() callback to the Audio Devic...
[pub/USBasp.git] / Projects / AVRISP-MKII / Lib / ISP / ISPTarget.c
index 9e7260a..04bfcb5 100644 (file)
@@ -41,7 +41,7 @@
  *
  *  \hideinitializer
  */
  *
  *  \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
 {
 #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
  */
  *
  *  \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),
 {
        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),
@@ -178,7 +178,7 @@ void ISPTarget_DisableTargetISP(void)
        {
                DDRB  &= ~((1 << 1) | (1 << 2));
                PORTB &= ~((1 << 0) | (1 << 3));
        {
                DDRB  &= ~((1 << 1) | (1 << 2));
                PORTB &= ~((1 << 0) | (1 << 3));
-               
+
                /* Must re-enable rescue clock once software ISP has exited, as the timer for the rescue clock is
                 * re-purposed for software SPI */
                ISPTarget_ConfigureRescueClock();
                /* Must re-enable rescue clock once software ISP has exited, as the timer for the rescue clock is
                 * re-purposed for software SPI */
                ISPTarget_ConfigureRescueClock();
@@ -195,7 +195,7 @@ void ISPTarget_ConfigureRescueClock(void)
        #if defined(XCK_RESCUE_CLOCK_ENABLE)
                /* Configure XCK as an output for the specified AVR model */
                DDRD  |= (1 << 5);
        #if defined(XCK_RESCUE_CLOCK_ENABLE)
                /* Configure XCK as an output for the specified AVR model */
                DDRD  |= (1 << 5);
-               
+
                /* Start USART to generate a 4MHz clock on the XCK pin */
                UBRR1  = ((F_CPU / 2 / ISP_RESCUE_CLOCK_SPEED) - 1);
                UCSR1B = (1 << TXEN1);
                /* Start USART to generate a 4MHz clock on the XCK pin */
                UBRR1  = ((F_CPU / 2 / ISP_RESCUE_CLOCK_SPEED) - 1);
                UCSR1B = (1 << TXEN1);
@@ -243,7 +243,8 @@ uint8_t ISPTarget_TransferSoftSPIByte(const uint8_t Byte)
        SoftSPI_Data          = Byte;
        SoftSPI_BitsRemaining = 8;
 
        SoftSPI_Data          = Byte;
        SoftSPI_BitsRemaining = 8;
 
-       if (SoftSPI_Data & 0x01)
+       /* Set initial MOSI pin state according to the byte to be transferred */
+       if (SoftSPI_Data & (1 << 7))
          PORTB |=  (1 << 2);
        else
          PORTB &= ~(1 << 2);
          PORTB |=  (1 << 2);
        else
          PORTB &= ~(1 << 2);