};
} byte1;
+#define SS_HIGH() PORTB |= (1 << 4)
+#define SS_LOW() PORTB &= (~(1 << 4))
+
void spi_servo_init(void)
{
- /* real SS ! */
- DDRK = 0x2;
/* SCK, SS & MOSI */
- DDRB = 0x7;
+ DDRB = 0xb0;
/* remove power reduction on spi */
PRR0 &= ~(1 << PRSPI);
/* Enable SPI, Master, set clock rate fck/64 */
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1);
- PORTK |= (1<<1);
+ SS_HIGH();
spi_servo_set(BYPASS_DISABLE, 0);
}
byte1.one = 1;
byte1.val_lsb = val;
- PORTK &= ~(1<<1);
+ SS_LOW();
SPDR = byte0.u8;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)));
- PORTK |= (1<<1);
+ SS_HIGH();
_delay_loop_1(5);
- PORTK &= ~(1<<1);
+ SS_LOW();
SPDR = byte1.u8;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)));
- PORTK |= (1<<1);
+ SS_HIGH();
}
void spi_servo_bypass(uint8_t enable)