AVRISP-MKII Clone: Clean up ISP driver code, namespace module variables.
[pub/USBasp.git] / Projects / AVRISP-MKII / Lib / ISP / ISPTarget.c
index 5adc4ab..2fcb376 100644 (file)
@@ -70,48 +70,48 @@ static const uint8_t SPIMaskFromSCKDuration[] 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(55945), TIMER_COMP(51613), TIMER_COMP(49690), TIMER_COMP(47905), TIMER_COMP(46243),
-       TIMER_COMP(43244), TIMER_COMP(41885), TIMER_COMP(39409), TIMER_COMP(38278), TIMER_COMP(36200),
-       TIMER_COMP(34335), TIMER_COMP(32654), TIMER_COMP(31129), TIMER_COMP(29740), TIMER_COMP(28470),
-       TIMER_COMP(27304), TIMER_COMP(25724), TIMER_COMP(24768), TIMER_COMP(23461), TIMER_COMP(22285),
-       TIMER_COMP(21221), TIMER_COMP(20254), TIMER_COMP(19371), TIMER_COMP(18562), TIMER_COMP(17583),
-       TIMER_COMP(16914), TIMER_COMP(16097), TIMER_COMP(15356), TIMER_COMP(14520), TIMER_COMP(13914),
-       TIMER_COMP(13224), TIMER_COMP(12599), TIMER_COMP(12031), TIMER_COMP(11511), TIMER_COMP(10944),
-       TIMER_COMP(10431), TIMER_COMP(9963),  TIMER_COMP(9468),  TIMER_COMP(9081),  TIMER_COMP(8612),
-       TIMER_COMP(8239),  TIMER_COMP(7851),  TIMER_COMP(7498),  TIMER_COMP(7137),  TIMER_COMP(6809),
-       TIMER_COMP(6478),  TIMER_COMP(6178),  TIMER_COMP(5879),  TIMER_COMP(5607),  TIMER_COMP(5359),
-       TIMER_COMP(5093),  TIMER_COMP(4870),  TIMER_COMP(4633),  TIMER_COMP(4418),  TIMER_COMP(4209),
-       TIMER_COMP(4019),  TIMER_COMP(3823),  TIMER_COMP(3645),  TIMER_COMP(3474),  TIMER_COMP(3310),
-       TIMER_COMP(3161),  TIMER_COMP(3011),  TIMER_COMP(2869),  TIMER_COMP(2734),  TIMER_COMP(2611),
-       TIMER_COMP(2484),  TIMER_COMP(2369),  TIMER_COMP(2257),  TIMER_COMP(2152),  TIMER_COMP(2052),
-       TIMER_COMP(1956),  TIMER_COMP(1866),  TIMER_COMP(1779),  TIMER_COMP(1695),  TIMER_COMP(1615),
-       TIMER_COMP(1539),  TIMER_COMP(1468),  TIMER_COMP(1398),  TIMER_COMP(1333),  TIMER_COMP(1271),
-       TIMER_COMP(1212),  TIMER_COMP(1155),  TIMER_COMP(1101),  TIMER_COMP(1049),  TIMER_COMP(1000),
-       TIMER_COMP(953),   TIMER_COMP(909),   TIMER_COMP(866),   TIMER_COMP(826),   TIMER_COMP(787),
-       TIMER_COMP(750),   TIMER_COMP(715),   TIMER_COMP(682),   TIMER_COMP(650),   TIMER_COMP(619),
-       TIMER_COMP(590),   TIMER_COMP(563),   TIMER_COMP(536),   TIMER_COMP(511),   TIMER_COMP(487),
-       TIMER_COMP(465),   TIMER_COMP(443),   TIMER_COMP(422),   TIMER_COMP(402),   TIMER_COMP(384),
-       TIMER_COMP(366),   TIMER_COMP(349),   TIMER_COMP(332),   TIMER_COMP(317),   TIMER_COMP(302),
-       TIMER_COMP(288),   TIMER_COMP(274),   TIMER_COMP(261),   TIMER_COMP(249),   TIMER_COMP(238),
-       TIMER_COMP(226),   TIMER_COMP(216),   TIMER_COMP(206),   TIMER_COMP(196),   TIMER_COMP(187),
-       TIMER_COMP(178),   TIMER_COMP(170),   TIMER_COMP(162),   TIMER_COMP(154),   TIMER_COMP(147),
-       TIMER_COMP(140),   TIMER_COMP(134),   TIMER_COMP(128),   TIMER_COMP(122),   TIMER_COMP(116),
-       TIMER_COMP(111),   TIMER_COMP(105),   TIMER_COMP(100),   TIMER_COMP(95.4),  TIMER_COMP(90.9),
-       TIMER_COMP(86.6),  TIMER_COMP(82.6),  TIMER_COMP(78.7),  TIMER_COMP(75.0),  TIMER_COMP(71.5),
-       TIMER_COMP(68.2),  TIMER_COMP(65.0),  TIMER_COMP(61.9),  TIMER_COMP(59.0),  TIMER_COMP(56.3),
-       TIMER_COMP(53.6),  TIMER_COMP(51.1)
+       ISP_TIMER_COMP(96386), ISP_TIMER_COMP(89888), ISP_TIMER_COMP(84211), ISP_TIMER_COMP(79208), ISP_TIMER_COMP(74767),
+       ISP_TIMER_COMP(70797), ISP_TIMER_COMP(67227), ISP_TIMER_COMP(64000), ISP_TIMER_COMP(61069), ISP_TIMER_COMP(58395),
+       ISP_TIMER_COMP(55945), ISP_TIMER_COMP(51613), ISP_TIMER_COMP(49690), ISP_TIMER_COMP(47905), ISP_TIMER_COMP(46243),
+       ISP_TIMER_COMP(43244), ISP_TIMER_COMP(41885), ISP_TIMER_COMP(39409), ISP_TIMER_COMP(38278), ISP_TIMER_COMP(36200),
+       ISP_TIMER_COMP(34335), ISP_TIMER_COMP(32654), ISP_TIMER_COMP(31129), ISP_TIMER_COMP(29740), ISP_TIMER_COMP(28470),
+       ISP_TIMER_COMP(27304), ISP_TIMER_COMP(25724), ISP_TIMER_COMP(24768), ISP_TIMER_COMP(23461), ISP_TIMER_COMP(22285),
+       ISP_TIMER_COMP(21221), ISP_TIMER_COMP(20254), ISP_TIMER_COMP(19371), ISP_TIMER_COMP(18562), ISP_TIMER_COMP(17583),
+       ISP_TIMER_COMP(16914), ISP_TIMER_COMP(16097), ISP_TIMER_COMP(15356), ISP_TIMER_COMP(14520), ISP_TIMER_COMP(13914),
+       ISP_TIMER_COMP(13224), ISP_TIMER_COMP(12599), ISP_TIMER_COMP(12031), ISP_TIMER_COMP(11511), ISP_TIMER_COMP(10944),
+       ISP_TIMER_COMP(10431), ISP_TIMER_COMP(9963),  ISP_TIMER_COMP(9468),  ISP_TIMER_COMP(9081),  ISP_TIMER_COMP(8612),
+       ISP_TIMER_COMP(8239),  ISP_TIMER_COMP(7851),  ISP_TIMER_COMP(7498),  ISP_TIMER_COMP(7137),  ISP_TIMER_COMP(6809),
+       ISP_TIMER_COMP(6478),  ISP_TIMER_COMP(6178),  ISP_TIMER_COMP(5879),  ISP_TIMER_COMP(5607),  ISP_TIMER_COMP(5359),
+       ISP_TIMER_COMP(5093),  ISP_TIMER_COMP(4870),  ISP_TIMER_COMP(4633),  ISP_TIMER_COMP(4418),  ISP_TIMER_COMP(4209),
+       ISP_TIMER_COMP(4019),  ISP_TIMER_COMP(3823),  ISP_TIMER_COMP(3645),  ISP_TIMER_COMP(3474),  ISP_TIMER_COMP(3310),
+       ISP_TIMER_COMP(3161),  ISP_TIMER_COMP(3011),  ISP_TIMER_COMP(2869),  ISP_TIMER_COMP(2734),  ISP_TIMER_COMP(2611),
+       ISP_TIMER_COMP(2484),  ISP_TIMER_COMP(2369),  ISP_TIMER_COMP(2257),  ISP_TIMER_COMP(2152),  ISP_TIMER_COMP(2052),
+       ISP_TIMER_COMP(1956),  ISP_TIMER_COMP(1866),  ISP_TIMER_COMP(1779),  ISP_TIMER_COMP(1695),  ISP_TIMER_COMP(1615),
+       ISP_TIMER_COMP(1539),  ISP_TIMER_COMP(1468),  ISP_TIMER_COMP(1398),  ISP_TIMER_COMP(1333),  ISP_TIMER_COMP(1271),
+       ISP_TIMER_COMP(1212),  ISP_TIMER_COMP(1155),  ISP_TIMER_COMP(1101),  ISP_TIMER_COMP(1049),  ISP_TIMER_COMP(1000),
+       ISP_TIMER_COMP(953),   ISP_TIMER_COMP(909),   ISP_TIMER_COMP(866),   ISP_TIMER_COMP(826),   ISP_TIMER_COMP(787),
+       ISP_TIMER_COMP(750),   ISP_TIMER_COMP(715),   ISP_TIMER_COMP(682),   ISP_TIMER_COMP(650),   ISP_TIMER_COMP(619),
+       ISP_TIMER_COMP(590),   ISP_TIMER_COMP(563),   ISP_TIMER_COMP(536),   ISP_TIMER_COMP(511),   ISP_TIMER_COMP(487),
+       ISP_TIMER_COMP(465),   ISP_TIMER_COMP(443),   ISP_TIMER_COMP(422),   ISP_TIMER_COMP(402),   ISP_TIMER_COMP(384),
+       ISP_TIMER_COMP(366),   ISP_TIMER_COMP(349),   ISP_TIMER_COMP(332),   ISP_TIMER_COMP(317),   ISP_TIMER_COMP(302),
+       ISP_TIMER_COMP(288),   ISP_TIMER_COMP(274),   ISP_TIMER_COMP(261),   ISP_TIMER_COMP(249),   ISP_TIMER_COMP(238),
+       ISP_TIMER_COMP(226),   ISP_TIMER_COMP(216),   ISP_TIMER_COMP(206),   ISP_TIMER_COMP(196),   ISP_TIMER_COMP(187),
+       ISP_TIMER_COMP(178),   ISP_TIMER_COMP(170),   ISP_TIMER_COMP(162),   ISP_TIMER_COMP(154),   ISP_TIMER_COMP(147),
+       ISP_TIMER_COMP(140),   ISP_TIMER_COMP(134),   ISP_TIMER_COMP(128),   ISP_TIMER_COMP(122),   ISP_TIMER_COMP(116),
+       ISP_TIMER_COMP(111),   ISP_TIMER_COMP(105),   ISP_TIMER_COMP(100),   ISP_TIMER_COMP(95.4),  ISP_TIMER_COMP(90.9),
+       ISP_TIMER_COMP(86.6),  ISP_TIMER_COMP(82.6),  ISP_TIMER_COMP(78.7),  ISP_TIMER_COMP(75.0),  ISP_TIMER_COMP(71.5),
+       ISP_TIMER_COMP(68.2),  ISP_TIMER_COMP(65.0),  ISP_TIMER_COMP(61.9),  ISP_TIMER_COMP(59.0),  ISP_TIMER_COMP(56.3),
+       ISP_TIMER_COMP(53.6),  ISP_TIMER_COMP(51.1)
 };
 
 /** Currently selected SPI driver, either hardware (for fast ISP speeds) or software (for slower ISP speeds). */
-bool HardwareSPIMode = true;
+bool ISPTarget_HardwareSPIMode = true;
 
 /** Software SPI data register for sending and receiving */
-static volatile uint8_t SoftSPI_Data;
+static volatile uint8_t ISPTarget_SoftSPI_Data;
 
 /** Number of bits left to transfer in the software SPI driver */
-static volatile uint8_t SoftSPI_BitsRemaining;
+static volatile uint8_t ISPTarget_SoftSPI_BitsRemaining;
 
 
 /** ISR to handle software SPI transmission and reception */
@@ -120,23 +120,23 @@ ISR(TIMER1_COMPA_vect, ISR_BLOCK)
        /* Check if rising edge (output next bit) or falling edge (read in next bit) */
        if (!(PINB & (1 << 1)))
        {
-               if (SoftSPI_Data & (1 << 7))
+               if (ISPTarget_SoftSPI_Data & (1 << 7))
                  PORTB |=  (1 << 2);
                else
                  PORTB &= ~(1 << 2);
        }
        else
        {
-               SoftSPI_Data <<= 1;
+               ISPTarget_SoftSPI_Data <<= 1;
 
-               if (!(--SoftSPI_BitsRemaining))
+               if (!(--ISPTarget_SoftSPI_BitsRemaining))
                {
                        TCCR1B = 0;
                        TIFR1  = (1 << OCF1A);
                }
 
                if (PINB & (1 << 3))
-                 SoftSPI_Data |= (1 << 0);
+                 ISPTarget_SoftSPI_Data |= (1 << 0);
        }
 
        /* Fast toggle of PORTB.1 via the PIN register (see datasheet) */
@@ -152,14 +152,14 @@ void ISPTarget_EnableTargetISP(void)
 
        if (SCKDuration < sizeof(SPIMaskFromSCKDuration))
        {
-               HardwareSPIMode = true;
+               ISPTarget_HardwareSPIMode = true;
 
                SPI_Init(pgm_read_byte(&SPIMaskFromSCKDuration[SCKDuration]) | SPI_ORDER_MSB_FIRST |
                                       SPI_SCK_LEAD_RISING | SPI_SAMPLE_LEADING | SPI_MODE_MASTER);
        }
        else
        {
-               HardwareSPIMode = false;
+               ISPTarget_HardwareSPIMode = false;
 
                DDRB  |= ((1 << 1) | (1 << 2));
                PORTB |= ((1 << 0) | (1 << 3));
@@ -173,7 +173,7 @@ void ISPTarget_EnableTargetISP(void)
  */
 void ISPTarget_DisableTargetISP(void)
 {
-       if (HardwareSPIMode)
+       if (ISPTarget_HardwareSPIMode)
        {
                SPI_Disable();
        }
@@ -243,21 +243,21 @@ void ISPTarget_ConfigureSoftwareSPI(const uint8_t SCKDuration)
  */
 uint8_t ISPTarget_TransferSoftSPIByte(const uint8_t Byte)
 {
-       SoftSPI_Data          = Byte;
-       SoftSPI_BitsRemaining = 8;
+       ISPTarget_SoftSPI_Data          = Byte;
+       ISPTarget_SoftSPI_BitsRemaining = 8;
 
        /* Set initial MOSI pin state according to the byte to be transferred */
-       if (SoftSPI_Data & (1 << 7))
+       if (ISPTarget_SoftSPI_Data & (1 << 7))
          PORTB |=  (1 << 2);
        else
          PORTB &= ~(1 << 2);
 
        TCNT1  = 0;
        TCCR1B = ((1 << WGM12) | (1 << CS11));
-       while (SoftSPI_BitsRemaining && TimeoutTicksRemaining);
+       while (ISPTarget_SoftSPI_BitsRemaining && TimeoutTicksRemaining);
        TCCR1B = 0;
 
-       return SoftSPI_Data;
+       return ISPTarget_SoftSPI_Data;
 }
 
 /** Asserts or deasserts the target's reset line, using the correct polarity as set by the host using a SET PARAM command.