Flinger Posted March 29, 2012 at 02:07 PM Report #446332 Posted March 29, 2012 at 02:07 PM Boas, é a minha de de pedir ajuda aqui ao pessoal. uint16_t calcCRC(uint8_t *frame,int size) { uint16_t CRCVal=0; int i; for( i = 0 ; i < size ; i++ ) { CRCVal = CRCTABLE[( CRCVal ^= frame[ i ] ) & 0xFF ] ^ ( CRCVal >> 8 ); } return CRCVal; } Esta função calcula o CRC de 16 bits segundo as normas ISO 3309, CCITT V42 e CCITT X25. Para tal usa uma tabela predefinida: const uint16_t CRCTABLE[256]= { 0xF078,0xE1F1,0xD36A,0xC2E3,0xB65C,0xA7D5,0x954E,0x84C7, ... }; O compilador dá-me um warning na linha: CRCVal = CRCTABLE[( CRCVal ^= frame[ i ] ) & 0xFF ] ^ ( CRCVal >> 8 ); Com a descrição: "operation on 'CRCVal' may be undefined". Alguém vislumbra o porquê deste warning, e como o limpar?
pmg Posted March 29, 2012 at 02:42 PM Report #446347 Posted March 29, 2012 at 02:42 PM CRCVal = CRCTABLE[( CRCVal ^= frame[ i ] ) & 0xFF ] ^ ( CRCVal >> 8 ); Estás a tentar mudar o valor de CRCVal duas vezes na mesma instrução (mais propriamente: sem um "sequence point" de intervalo). Muda a segunda atribuição para uma instrução isolada CRCVal ^= frame[ i ]; CRCVal = CRCTABLE[CRCVal & 0xFF ] ^ ( CRCVal >> 8 ); What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Flinger Posted March 29, 2012 at 02:44 PM Author Report #446348 Posted March 29, 2012 at 02:44 PM Também me pareceu que estivesse por aí o problema, mas como o código foi retirado directamente do manual do fornecedor do equipamento... Deixei passar.
pmg Posted March 29, 2012 at 02:50 PM Report #446351 Posted March 29, 2012 at 02:50 PM ... o código foi retirado directamente do manual do fornecedor ... O fornecedor podia (devia!) aprender contigo a ligar os warnings do compilador 👍 What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now