J'ai créé un projet test disponible au téléchargement permettant de comprendre comment le système fonctionne.
Les sources sont bien sûr disponible sous les termes de la GNU General Public License
Le projet : PicCompactFlash
Voici la liste des prototypes des fonctions :
- void cf_delay(void); Permet d'introduire un délai dans les opérations nécessitant une tempo précise
- void cf_init_host(void); Avant d'accéder à toute autre fonction CF, il est indispensable d'appeler celle ci, elle s'occupe de configurer les ports correctement
- unsigned char cf_detect(void); Renvoie 0 si aucune carte n'est insérée
- void cf_write_reg(unsigned char reg, char data); Ecrit une commande data dans le registre reg
- unsigned char cf_read_reg(unsigned char reg); Lit le registre reg
- void cf_write(char); Ecrit un octet
- unsigned char cf_read8(); Lit un octet
- unsigned int cf_read16(); Lit un mot (2 octets)
- unsigned char cf_valid(void); Renvoie CF_OK si la signature correspond bien à une Compact Flash
- unsigned char cf_identify(IdentifyDevice *); Rempli la structure passée en paramètre et permet d'obtenir des infos sur la carte
- void cf_reset(void); Effectue un Reset de la carte
- void cf_enable(void); Sélectionne la carte
- unsigned char cf_cmd_diagnostic(void); Exécute une commande de diagnostique et retourne le code erreur correspondant à l'état de la carte
- unsigned char cf_check_ready(void); Teste si la carte est prête (hard)
- void cf_skip8(unsigned char); Saute un octet
- void cf_set_position(unsigned long, unsigned char); Spécifie une adresse
- unsigned char cf_is_busy(void); Renvoie si la carte est occupé
- unsigned char cf_is_ready(void); Renvoie si la carte est prête (logiciel)