Lecția Avr 33

Acum, va trebui să nu deranjăm picioarele, dar să urmărim starea lor. Mai întâi de toate, creați un front pozitiv, stabilind un nivel ridicat pe piciorul SCK







PORTB | = (1<

Deplasați rezultatul spre stânga cu 1 punct pentru a pregăti un loc pentru noul bit. Dacă acesta este primul ciclu, atunci este bine, avem această variabilă la zero, deci nu scrieți nicio condiție

PORTB | = (1<

rezultat <<=1; //сдвигаем влево байт, чтобы записать очередной бит

Acum, dacă avem un nivel pe piciorul MISO egal cu 1, atunci plop-l în pic dreapta al variabilei ewsult

rezultat <<=1; //сдвигаем влево байт, чтобы записать очередной бит

dacă ((PINB (1<

rezultat = rezultat | 0x01; // scrie bitul citit de pe piciorul portului MISO

Apoi marginea negativă pe SCK și așteptați 1 ceas

rezultat = rezultat | 0x01; // scrie bitul citit de pe piciorul portului MISO

(1<





asm ("nop"); // 1 ciclu așteptați

Finalizați bucla și returnați rezultatul din funcție

asm ("nop"); // 1 ciclu așteptați

rezultatul retur; // returnați rezultatul

Acum trebuie să scriem funcția de transfer de comandă în SD.

Să deschidem un exemplu în datashit

Lecția Avr 33

Fiecare echipă are un index. Această comandă are un index de 8, deoarece se numește CMD8. Există, de asemenea, diferențe în tipurile de comenzi. Dar despre acest lucru mai târziu, suntem încă interesați de acest tip, iar această comandă va trebui mai târziu să ne fie transferată.

Vedem că transmisia de comandă constă din 48 de biți, adică de la 6 octeți. Prima linie prezintă poziția bitului în comandă, a doua - valoarea parametrului în biți, a treia - valoarea și a patra - explicația parametrului.

Bitul de pornire este întotdeauna 0.

Bitul de transmisie este 1.

Indicele comenzii - în cazul acestei comenzi este 8.

apoi du-te biți rezervate - până la 20 de bucăți, toate egale cu zero.

Apoi sunt parametrii, cei 7 biți ai sumelor de control și bitul de stop - întotdeauna 1.

Așa că trebuie să scriem funcția de a transmite comanda

Vom scrie după funcțiile noastre de transfer și recepționare a octeților, deoarece va fi folosită noua funcție a acestor funcții

SD_cmd unsigned char (char dt0. Char DT1. Char dt2. Char DT3. Char DT4. Dt5 char)

Iată câți parametri. La fel ca și noi în echipă. Apoi vom afla mai multe despre ele

SD_cmd unsigned char (char dt0. Char DT1. Char dt2. Char DT3. Char DT4. Dt5 char)







Articole similare

Trimiteți-le prietenilor: