error Transceiver_ControlarPaquete(void){
		  byte k;
         
          if(nro_sec != Buffer_Rx[2]){ 	
             nro_sec=Buffer_Rx[2];
             if(Buffer_Rx[1]==0x01){
            	 timer_turno=0;
            	 return _ERR_OK; 
             }
			 if(Transceiver_ControlarDato() != _ERR_OK)
				 return _ERR_ACK;              
			 Buffer_Escritura[index_fil][0]=Buffer_Rx[0];// GUARDAMOS EL ID
			 for(k=3;k<tam_paquete-1;k++)// copiamos los datos controlados al buffer para q se escriba una vez lleno
				 Buffer_Escritura[index_fil][k-2]=Buffer_Rx[k];
			 index_fil++;
			 if(index_fil>=cantidad_datos){
				 index_fil=0;
				 (void)SD_Escribir(dir_escritura,Buffer_Escritura); // cuando esto ocurre se desabilitan 
				 (void)SD_CalculaDireccion(dir_escritura,Buffer_Escritura);
				 LED_BrillarR(2,300);
				 LED_BrillarV(2,300);
			  }
          }//cierra el if de nro sec
return _ERR_OK;
}
Esempio n. 2
0
error SD_Leer(byte *direccion, dato lectura[][tam_dato]){
    UINT32 u32SD_Block; // Convertimos la direccion en una variable de 32 bits
	
	SPI_Init();
	u32SD_Block = direccion[0];
	u32SD_Block <<= 8;
	u32SD_Block |= direccion[1];
	u32SD_Block <<= 8;
	u32SD_Block |= direccion[2];
	u32SD_Block <<= 8;
	u32SD_Block |= direccion[3];
    
    (void) SD_CalculaDireccion(dir_lectura, lectura);
    (void) SD_ReadSector(u32SD_Block,(UINT8 *) lectura);
    (void)Cpu_Delay100US(100); 
    //ban_bufferTx=0;
        
    return _ERR_OK;

}