zu 1)
Code:
//DDRB
#define SPI_MOSI_DDR DDRB
#define SPI_CLK_DDR DDRB
#define SPI_MISO_DDR DDRB
#define SPI_SS_DDR DDRB
//PORTB
#define SPI_MOSI_PORT PORTB
#define SPI_CLK_PORT PORTB
#define SPI_MISO_PORT PORTB
#define SPI_SS_PORT PORTB
// PIN
#define SPI_MOSI_PIN0 PINB0
#define SPI_SS_PIN1 PINB1
#define SPI_CLK_PIN2 PINB2
#define SPI_MISO_PIN3 PINB3
//PB
#define SPI_MOSI_PB0 PB0
#define SPI_SS_PB1 PB1
#define SPI_CLK_PB2 PB2
#define SPI_MISO_PB3 PB3
//Slave-deklaration
void SPI_INIT(void)
{
// MOSI, CLK und SS auf Eingang setzen
SPI_MOSI_DDR = (1<<SPI_MOSI_PB0);
SPI_CLK_DDR = (1<<SPI_CLK_PB2);
SPI_SS_DDR = (1<<SPI_SS_PB1);
// MOSI, CLK und SS Internen Pull-Up aktivieren
SPI_MOSI_PORT |=(1<<SPI_MOSI_PB0);
SPI_CLK_PORT |=(1<<SPI_CLK_PB2);
SPI_SS_PORT |=(1<<SPI_SS_PB1);
// MISO auf Ausgang setzen
SPI_MISO_DDR |= (1<<SPI_MISO_PB3);
//MISO auf High setzten
SPI_MISO_PORT |= (1<<SPI_MISO_PB3);
}
zu 2) Mein fehler geändert in
Code:
for(uint16_t a =15 ; a > 0; a--)
zu3) Kennst du das nicht im Kopf Klang es logisch, eigentlich wollte ich damit erreichen das er an der stelle warten soll bist der externe Int0 ausgelöst wird.
zu4) Ne es soll nur etwas am miso-pin passieren wenn der der interrupt ausgelöst wird.
zu5) es werden 16-bit ausgegeben habe es nur byte genannt.
MfG Kluski
Lesezeichen