IDE : AtmelStudio 7.0.1645
AVR : ATMega 16A DIP40
Taktowanie : Wewnętrzne 8MHz
SPI nie rusza w ogóle, sprawdzam SALEAE, 74HC595
Kod: Zaznacz cały
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
void init_spi(void){
DDRB |= (1 << PB7);
DDRB &= ~(1 << PB6);
DDRB |= (1 << PB5);
DDRB |= (1 << PB4);
PORTB |= (1 << PB7);
PORTB |= (1 << PB6);
PORTB |= (1 << PB5);
PORTB |= (1 << PB4);
SPCR = ((1 << SPE)| (1 << MSTR));
SPSR = (1 << SPI2X);
}
uint8_t rcv_spi(void) {
SPDR = 0xff;
while(!(SPSR & (1 << SPIF)));
return SPDR;
}
void xmit_spi (uint8_t txData){
SPDR = txData;
while(!(SPSR & (1 << SPIF)));
}
int main(void){
init_spi();
xmit_spi(0xFF);
_delay_ms(100);
}