Beste
ik ben een SPI protocolletje aant het uitproberen om gegevens van een MBED naar een ATMEGA32 te versturen.
ik heb echter een eigenaardig probleem
MBED code:
chipSelect = 0; // Select device
dataFromSlave=spi.write(0x01); //0xF0;
wait(0.5);
dataFromSlave=spi.write(0x02);
wait(0.5);
dataFromSlave=spi.write(0x03);
wait(0.5);
dataFromSlave=spi.write(0x04); //0x0F
wait(0.5);
chipSelect = 1; // Deselect device.
er wordt dus achtereenvolgens 1, 2, 3, 4 verstuurd met een pauze van 0.5s ertussen
om het te ontvangen en zichtbaar te maken op LCD aan de ATMEGA kant heb ik volgende code geschreven
while(!(SPSR & (1<<SPIF)));
char spiData = SPDR;
recvBytes[byteTeller] = spiData;
byteTeller++;
if (byteTeller == 4 ){byteTeller=0;}
lcdGotoXY(0,0);
lcd_dec3(recvBytes[0]);
lcdGotoXY(4,0);
lcd_dec3(recvBytes[1]);
lcdGotoXY(8,0);
lcd_dec3(recvBytes[2]);
lcdGotoXY(12,0);
lcd_dec3(recvBytes[3]);
lcdGotoXY(7,1);
lcd_dec3(byteTeller);
*byteteller wordt bij opstarten controller 0 gemaakt
het resultaat is dat wanneer ik iets verstuur ik de volgende output krijg: 2 4 0 0
en mijn byteteller staat op 2 terwijl dit 4 zou moeten zijn...
weet er wat mijn probleem is?
alvast bedankt
grts