 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
upornik Član

Pridružen-a: Ned 09 Jan 2005 22:35 Prispevkov: 261 Aktiv.: 1.10 Kraj: Celje
|
Objavljeno: Ned Jul 20, 2008 12:14 am Naslov sporočila: Programsko izvajanje SPI? |
|
|
Lep pozdrav!
Trenutno se ukvarjam s serijskim prenosom podatkov med enim modulom in AVR-jem. Ker so za omenjeni modul že napisane nekatere funkcije za serijski prenos podatkov v datasheetu samega modula, bi v svojem programu rad uporabil kar te.
Zanima me sledeče; funkcija je napisana tako, da v bistvu sploh ne koristi hardware-a SPI, ampak je serijski prenos podatkov izveden programsko.Za prenos 16 bitnega podatka izgleda nekako tako:
Koda: |
#define SCK 7 // SPI clock
#define SDO 5 // SPI Data output (module's side)
#define SDI 6 // SPI Data input (module's side)
#define CS 4 // SPI SS (chip select) |
Koda: |
unsigned int writeCmd(unsigned int cmd) {
unsigned char i;
unsigned int recv;
recv = 0;
LO(SCK);
LO(CS);
for(i=0; i<16; i++) {
if(cmd&0x8000) HI(SDI); else LO(SDI);
HI(SCK);
recv<<=1;
if( PINB&(1<<SDO) ) {
recv|=0x0001;
}
LO(SCK);
cmd<<=1;
}
HI(CS);
return recv;
} |
Zanima me sledeče:
Ali lahko jaz sedaj SDI,SDO in SCK povežem z katerimkoli I/O pini mikrokrmilnika, ali morajo biti vseeno povezani z MOSI,MISO in SCK, čeprav ne uporabljam vmesnika SPI? Namreč, v datasheetu je modul vseeno povezan z MOSI,MISO in SCK, čeprav se serijski prenos vrši programsko, meni pa bi bolj ustrezalo, da bi lahko modul povezal z drugimi I/O pini krmilnka, saj že imam na MOSI,MISO in SCK vezane druge naprave in bi se s tem izognil določenim komplikacijam.
Hvala za pomoč! |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Ned Jul 20, 2008 10:39 am Naslov sporočila: |
|
|
S katerimikoli, saj pine poganja tvoja koda in ne HW SPI modul. Seveda mroajo biti pini ustrezno nastavljeni (vhod/izhod). _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|