Minor XMEGA USB driver fixes.
[pub/USBasp.git] / Projects / AVRISP-MKII / Lib / ISP / ISPTarget.c
index 9e7260a..a6ec536 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),
@@ -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);