Will the nrf24l01 work with the Atmega 32u4 if I am using the 32u4's internal clock, or must I have an external clock source?
You ask a yes/no question, to which the answer is yes, nRF24L01 as a serial peripheral device will work as well as if you had used an Arduino UNO or any other microcontroller, provided the SPI bus is correctly initialized.
Generally you want the following in the
setup() part of your sketch/program:
pinMode(CE_pin, OUTPUT);//chip enable set as output pinMode(CSN_pin, OUTPUT);//chip select pin as output pinMode(MOSI_pin, OUTPUT);//SPI data out pinMode(MISO_pin, INPUT); //SPI data in pinMode(SCK_pin, OUTPUT);//SPI clock out digitalWrite(CSN_pin, HIGH);//SPI idle digitalWrite(CE_pin, LOW); SPI.setBitOrder(MSBFIRST);//SPI Most Significant Bit First SPI.setDataMode(SPI_MODE0);// Mode 0 Rising edge of data, keep clock low SPI.setClockDivider(SPI_CLOCK_DIV2);//Run the data in at 16MHz/2 - 8MHz SPI.begin();//start up SPI library