Decrease SPI clock speed

Is it possible to decrease the SPI clock speed on an Arduino 16MHz? I Noticed using SPI_CLOCK_DIV128 gives me a clock of 125kHz which is to much for the module i want to talk to. Is there any possibility to lower it?

Search for Shiftin and shiftout arduino functions, this is SPI at very low speed.

Thanks for your answer
So, basically said, i have to do my own SPI implementation?

I need 80Mhz, software SPI seems to be to slow and best effort so no option.

Much easier, follow the example sketches given with these arduino functions:

I'm confused, you said 125kHz is too fast, but then that you need 80MHz? Which of course is 640 times faster than 125kHz.

What do you need, very slow SPI clock, or very fast SPI clock?

Sorry, typo ... i need 80kHz

The easiest way to change the SPI clock rates is to implement your code correctly so the SPI library will play nice with multiple devices. All that is required is that your code use SPI transactions.

You will not be able to generate 80 KHz since the dividers are powers of two. The lowest you can go is 125 KHz with a 16 MHz AVR (16,000,000 / 128) as you discovered.

You can always reclock to 8 MHz with a crystal change and firmware reflash. You’ll want to install Mini Core or use the Pro Mini board configuration to use 8 MHz on an Uno or Nano. Several ways to solve that one.

If you don't use Serial you may use USART in MSPI mode. It has 12 bit prescaler.

WattsThat:
You can always reclock to 8 MHz with a crystal change and firmware reflash. You’ll want to install Mini Core or use the Pro Mini board configuration to use 8 MHz on an Uno or Nano. Several ways to solve that one.

One way is to use
#include <avr/power.h>
and in the setup do
clock_prescale_set(clock_div_2);

That will make it run at 8MHz. Just upload using the usual Uno board setting and everything will be slow, running at half speed, such as delay(1000) will take 2 seconds.

I think you could switch on the fly, doing clock_prescale_set(clock_div_2); before statements you want to run at 8MHz, and clock_prescale_set(clock_div_1); after those statements.