hallo,
ik heb een stukje repeterende code die ik in een functie wil "gieten"
echter bezit die code al een functie (SPI_transfer), dus krijg je denk ik een functie in een functie. of er komt een geheel nieuwe opzet.
code is er voor om een byte uit een ext.RAM te halen m.b.v. SPI.
ik post een stukje code waar alles in staat.
hoe kan ik dit in 1 functie krijgen ?
alvast bedankt.
c code:
uint8_t SPI_transfer(uint8_t data) // functie
{
SPDR = data;
while(!(SPSR & (1<<SPIF))); // Wait for transmission complete
return SPDR;
}
uint32_t address;
PORTA |= (1 << PINA0); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
for (Y_scan = 0; Y_scan < 37000; Y_scan = Y_scan + 1000)
{
for (X_scan = 0; X_scan < 300; X_scan ++)
{
// RAM_address = Y_scan + X_scan + 1;
RAM_address = X_scan + 1;
PORTG &= ~(1 << PING5); // make SS ext. RAM pin = 0
SPI_transfer(0b00000011); // read data from memory
address = RAM_address; // is address in ext. RAM
SPI_transfer((address>>16)); // address
SPI_transfer((address>>8)); // address
SPI_transfer((address)); // address
SPI_transfer(0x00); // dummy when you want to read a byte from ext. RAM
PORTG |= (1 << PING5); // make SS ext. RAM pin = 1
check_byte_1 = SPDR; // 76543210