Hallo,
ich benutze den SD-Card Code von www.dharmanitech.com
Darin wird ChipSelect des Card Slots folgendermassen definiert;
1 | #define SD_CS_ASSERT PORTB &= ~0x00
|
2 | #define SD_CS_DEASSERT PORTB |= 0x00
|
Im c.modul wird vor einer SPI Übertragung sd_cs_assert, nach einer
Übertragung sd_cs_deassert aufgerufen. Der Code läuft und ich habe damit
auch schon Logs auf SD-Card gespeichert.
Was mich aber verwundert ist die Definierung für assert und deassert.
Hab auch die Funktionen mal durchgeschaut, die spi übertragung fängt
immer mit assert an und endet mit deassert ?!?
müsste es nicht andersrum definiert werden oder wo liegt der denkfehler?
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Eing.C3.A4nge_.28Wie_kommen_Signale_in_den_.C2.B5C.29
1 | Will man also nur den dritten Pin (Bit Nr. 2) an Port B auf "high" setzen und den Status der anderen Ausgänge unverändert lassen, nutze man diese Form:
|
2 | #include <avr/io.h>
|
3 | ...
|
4 | PORTB = PORTB | 0x04; /* besser: PORTB = PORTB | ( 1<<PB2 ) */
|