Esegui in sequenza le operazioni per mettere opportunamente a 0 o a 1 le uscite e basta. Non servono timers.
Qui c'è un esempio della routine che pilota un STP16CP05
Qui hai un esempio di come si pilota quel coso. Questa è la funzione di serializzazione, manca il pilotaggio dei segnali di Enable e di Load (ma sono una cretinata: alzi ed abbassi un' uscita).
- Codice: Seleziona tutto
//-----------------------------------------------------------------------------------------------
// Defines per SPI software
// Pin SCK
#define SPI_SCK_SET 0x2000 // Word per settare/resettare uscita
#define SPI_SCK_PORT GPIOB // Porta GPIO del segnale
#define SPI_SCK_PIN GPIO_Pin_13 // GPIO pin per l' inizializzazione
// Pin DOUT
#define SPI_DOUT_SET 0x8000 // Word per settare/resettare uscita
#define SPI_DOUT_PORT GPIOB // Porta GPIO del segnale
#define SPI_DOUT_PIN GPIO_Pin_15 // GPIO pin per l' inizializzazione
//-----------------------------------------------------------------------------------------------
// Invia una parola a 32 bit sulla SPI software
static void SPIsendDword(uint32_t dato)
{
uint32_t i;
i = 32;
while(i)
{
if (dato & 0x80000000) SPI_DOUT_PORT->BSRR = SPI_DOUT_SET; else SPI_DOUT_PORT->BRR = SPI_DOUT_SET;
// Alza il clock
SPI_SCK_PORT->BSRR = SPI_SCK_SET;
dato <<= 1;
i--;
// Abbassa il clock
SPI_SCK_PORT->BRR = SPI_SCK_SET;
}
}

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)




