Hi,
ich stehe gerade programmiertechnisch auf dem Schlauch. Ich habe mehrere
SPI-Slaves am uC und nutze die eingebaute SPI-Hardware. Jeder Slave hat
sein eigenes /CS-Signal über einen Portpin verstreut über die freien
Ports. Soweit funktioniert alles prima.
Nun wollte ich den ganzen SPI-Code in "universelle" SPI-Funktionen
umschreiben, habe da aber das Problem, dass ich gerade mir das Hirn
zermartere, wie ich am besten den anzusprechenden Slave übergebe. Am
liebsten würde ich gerne in einer spi.h o.ä. jedem Slave eine Nummer
zuweisen, über die er dann angesprochen werden kann, z.B.
1 | void SPI-Send(uint8_t slave, uint8_t data)
|
Nur, wie löse ich intelligent die Slave-Nummer zum /CS-Portpin auf?
Bislang fällt mir nur das Konstrukt
1 | switch(slave)
|
2 | {
|
3 | case 0:
|
4 | LATAbits.LATA7 = 0;
|
5 | break;
|
6 | case 1:
|
7 | LATBbits.LATB1 = 0;
|
8 | break;
|
9 | ...
|
10 | }
|
ein. Geht das nicht irgendwie "universeller" über #define-Macros?
Vielleicht hat mir ja einer einen guten Tipp oder Hinweis :-)